【发布时间】:2014-02-21 06:33:26
【问题描述】:
用这个字符串:
String test = "hey\nyo\nsup\nyello";
我打电话给
System.out.println(test.indexOf("yello"));
我得到 11,这个数字是怎么产生的?并且“\n”算作字符串中的一个字符吗?
【问题讨论】:
用这个字符串:
String test = "hey\nyo\nsup\nyello";
我打电话给
System.out.println(test.indexOf("yello"));
我得到 11,这个数字是怎么产生的?并且“\n”算作字符串中的一个字符吗?
【问题讨论】:
“\n”算作字符串中的一个字符吗?
是的,在 java 中 \n 被视为单个字符
h e y \n y o \n s u p \n yello
-------------------------------
0 1 2 3 4 5 6 7 8 9 10 11
这就是为什么你用11 换成test.indexOf("yello")
你可以试试这个作为证明:
String str = "\n";
System.out.println(str.length());
会给你1作为输出
【讨论】:
考虑
"hey\nyo\nsup\nyello"
0 0 0 0 0 1 1 1 (x)
0 2 4 6 8 0 2 4 (y)
字符串中的每个字符索引为 (10x+y)。
如您所见,y 位于第 11 位(是的,\n 是一个字符)
【讨论】:
是的,\n 在 Java 中被视为单个字符。
数字产生如下:
"hey\nyo\nsup\nyello"
0 0 0 0 0 1 1 1
0 2 4 6 8 0 2 4
这表明y 位于11 位置。数字代表字符串中每个字符的偏移量。
【讨论】: