你能用一些简单的英语单词给我一个解释:
getChars()和subSequence(int startindex,int endindex)
函数返回从startindex开始到endindex -1的子串。它的原因是什么。在C中有一个终止空字符,但它没有任何终止空字符。那么为什么java中的lastcharacter-1。在这个程序中我使用了子序列函数,输出应该是“glech”。但事实并非如此。输出是“glec”。为什么呢?
class simple
{
public static void main(String args[])
{
String str="gigglecheguvera";
System.out.println(str.subSequence(3,7));
}
}
答案 0 :(得分:3)
startIndex
是开始的索引,endIndex
是停止的索引。所以,让我们来看看:
+----------StartIndex | +---- endIndex v v gigglecheguvera
这最终真的很有用。例如,如果要在空格和逗号之间找到文本:
String str = source.substring(source.indexOf(' '), source.indexOf(','));
这也意味着我们可以使用字符串的长度作为第二个参数,而不会越界。这对于您可能会或可能不会找到您的结束角色的情况非常方便:
int endIndex = source.indexOf(',');
String str = source.substring(source.indexOf(' '), endIndex == -1 ? source.length : endIndex);
答案 1 :(得分:1)
C中的空终止符不是原因。
起始索引是“包含边界”,结束索引是“独占边界”。这是一个常见的惯例。例如,请查看Arrays.copyOfRange
。它做了同样的事情。
人们这样做是因为它通常更方便。例如,这是一个有用的结果:str.subSequence(a, b).length() == b - a
。