java子字符串未按预期工作
我试图在java中使用substring函数,但它总是抛出一个错误,我想知道为什么?从逻辑上讲,代码似乎很好,但为什么会抛出这个错误呢java子字符串未按预期工作,java,string,substring,Java,String,Substring,我试图在java中使用substring函数,但它总是抛出一个错误,我想知道为什么?从逻辑上讲,代码似乎很好,但为什么会抛出这个错误呢 Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1 我在文档中读到的子字符串采用2参数 substring(whereIwantToStart,howManyCharactersToshow) 下面是我的代码
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
我在文档中读到的子字符串采用2参数
substring(whereIwantToStart,howManyCharactersToshow)
下面是我的代码
String test = "160994";
System.out.println(test.substring(2,1)); //output should be 09 why error?
有人能给我解释一下怎么了吗?请给我解释一下。谢谢:)请参阅:
公共字符串子字符串(int beginIndex、int endIndex)
返回作为此字符串的子字符串的新字符串。子字符串从指定的beginIndex开始,然后
扩展到索引endIndex-1处的字符。因此,长度
子字符串是endIndex beginIndex
您需要“160994”。子字符串(2,4)
才能获得09
请参见:
公共字符串子字符串(int beginIndex、int endIndex)
返回作为此字符串的子字符串的新字符串。子字符串从指定的beginIndex开始,然后
扩展到索引endIndex-1处的字符。因此,长度
子字符串是endIndex beginIndex
您需要
“160994”。子字符串(2,4)
才能获得09
这是java中子字符串的格式
public String substring(int beginIndex, int endIndex)
您正在指定从索引2开始到索引1结束,这就是它将异常索引抛出范围之外的原因
要获得所需的输出
System.out.println(test.substring(2,4));
附录-Java文档这是Java中子字符串的格式
public String substring(int beginIndex, int endIndex)
您正在指定从索引2开始到索引1结束,这就是它将异常索引抛出范围之外的原因
要获得所需的输出
System.out.println(test.substring(2,4));
附录-Java文档结束索引应大于开始索引。要获得“09”的输出,您应该将结束索引提供为4
test.substring(2,4)代码>
返回作为此字符串的子字符串的新字符串。
子字符串从指定的beginIndex
开始并扩展
到索引endIndex-1
处的字符
因此,子字符串的长度是endIndex beginIndex
StringIndexOutOfBoundsException
将在以下情况下抛出
beginIndex<0
endIndex>value.length
endIndex-beginIndex<0
结束索引应大于开始索引。要获得“09”的输出,您应该将结束索引提供为4test.substring(2,4)代码>
返回作为此字符串的子字符串的新字符串。
子字符串从指定的beginIndex
开始并扩展
到索引endIndex-1
处的字符
因此,子字符串的长度是endIndex beginIndex
StringIndexOutOfBoundsException
将在以下情况下抛出
beginIndex<0
endIndex>value.length
endIndex-beginIndex<0
对于您所需的输出使用-
System.out.println(test.substring(2,4));
对于您所需的输出使用-
System.out.println(test.substring(2,4));
公共字符串子字符串(int-startIndex,int-endIndex)
:此方法将包含给定字符串的子字符串的新字符串对象从指定的startIndex返回到endIndex
让我们通过下面给出的代码来理解startIndex和endIndex
String s="hello";
System.out.println(s.substring(0,2));
输出:he
注意:
endIndex>startIndex
在您的情况下:在1和2个位置之间切换到
String test = "160994";
System.out.println(test.substring(2, 4)); //output should be 09
输出:09
公共字符串子字符串(int-startIndex,int-endIndex)
:此方法从指定的startIndex到endIndex返回包含给定字符串子字符串的新字符串对象
让我们通过下面给出的代码来理解startIndex和endIndex
String s="hello";
System.out.println(s.substring(0,2));
输出:he
注意:
endIndex>startIndex
在您的情况下:在1和2个位置之间切换到
String test = "160994";
System.out.println(test.substring(2, 4)); //output should be 09
输出:09
String test=“160994”
系统输出println(测试子串(2,1))
子字符串表示(beginIndex,endIndex)和endIndex应大于beginIndex。并且您的值(09)应介于beninIndex(起始索引)和endIndex(最后一个索引)之间
您已经获取了endIndex 1,因此您得到了错误,因为您的beginIndex大于endIndex
如果你想得到Ans.09,那么你应该把endIndex设置为4
行为:-系统输出打印LN(测试子字符串(2,4)) String test=“160994”
系统输出println(测试子串(2,1))
子字符串表示(beginIndex,endIndex)和endIndex应大于beginIndex。并且您的值(09)应介于beninIndex(起始索引)和endIndex(最后一个索引)之间
您已经获取了endIndex 1,因此您得到了错误,因为您的beginIndex大于endIndex
如果你想得到Ans.09,那么你应该把endIndex设置为4
行为:-系统输出打印LN(测试子字符串(2,4)) 提示:所有Java库类和方法都有很好的文档记录。您不应该只是调用一个方法,而应该始终首先阅读该文档。在不知道其参数含义的情况下调用方法是没有意义的。文档中的示例:“hamburger”。子字符串(4,8)返回“敦促”“微笑”。子字符串(1,5)返回“英里”可能的副本。您是否可以提供这样的文档:“子字符串接受2个参数子字符串(我想从何处开始,有多少个字符显示)”?你必须仔细阅读文档,但不要感到沮丧,实践使你成为大师。小提示:如果您使用的是eclipse,可以在“test”之前按CTRL+space,以显示提供上下文、文档和完成选项的内容辅助。祝你好运。提示:所有Java库类和方法都有很好的文档记录。您应该始终首先阅读该文档,而不是仅仅调用方法。在不知道方法参数的含义的情况下调用方法是没有意义的