日期:2014-05-20  浏览次数:21023 次

Java中的字符串末尾有没有“\0”?
如题,java中的字符串末尾有没有什么特殊符号
例:String str1 = "abcefghijk";
 System.out.println(str1.substring(4,7));

输出 fgh
如果改为(4,9)--输出fghij

如果改为(4,10)--输出fghijk

如果改为(4,11)---提示下标越界

疑问:字符串下标从0开始,到9,为什么(4,10)的时候不提示下标越界呢?

------解决方案--------------------
public String substring(int beginIndex,
int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,一直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。 

------解决方案--------------------
探讨
如题,java中的字符串末尾有没有什么特殊符号
例:String str1 = "abcefghijk";
System.out.println(str1.substring(4,7));

输出 fgh
如果改为(4,9)--输出fghij

如果改为(4,10)--输出fghijk

如果改为(4,11)---提示下标越界

疑问:字符串下标从0开始,到9,为什么(4,……

------解决方案--------------------
public String substring(int start,ing end);
从start开始到end前一个字符结束
也就是说输出范围是[start,end-1]
------解决方案--------------------
左闭右开 10越界 你这里的10是开的 当然没有越界
11就包括10了