Dejan February 2016
C# String.Length from Microsoft Documentation
Microsoft documentation states that this code will return 7 characters
The Length property returns the number of Char objects in this instance,
not the number of Unicode characters.
string characters = "abc\u0000def";
Console.WriteLine(characters.Length); // Displays 7
I will need a function to return as result 12 because there are 12 different characters. Which function I may use?
dlatikay February 2016
You would have to prevent the interpretation of the literal by the compiler. This can be done with the @ prefix, like this:
var characters = @"abc\u0000def";
Length property of this string will then return 12, but there will no longer be an actual unicode character in the string.
Franz Wimmer February 2016
The C# compiler will replace
\u0000 by a null byte. That means, at execution time you will simply have only 7 characters in your memory.
If you don't want the compiler to replace the special char, you have to escape the backslash in the first place:
string characters = "abc\\u0000def";
Console.WriteLine(characters.Length); // Displays 12
Asked in February 2016
Viewed 1,088 times
Answered 2 times
Leave an answer
Quote of the day: live life