Because it has to find the end the last character, which may be multiple byte character. 

I guess if there is NValue::getIthCharIndex() function, I may be re-use that function also by giving length + 1. Then I have to take care of the last character out of index problem carefully.