我想第一次切片的字符串。使用此代码,如果我输入,例如“一二三”,它可以正常工作,直到最后一个单词。 这是输出的最后几行:切片字符串
当前词是苏氨酸
句话是现在Ë
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 3
at java.lang.String.substring(String.java:1907)
at TestCurr.main(testCurrentWord.java:18)
有任何人任何想法,为什么它是最后一个字?
class TestCurr
{
public static void main (String []args)
{
String s;
int i;
String currentWord;
int length;
int spacePos;
System.out.println("Enter a sentence ");
s = EasyIn.getString();
spacePos = s.indexOf(" ");
length = s.length();
for (i = length -1; i >= 0; i--)
{
currentWord = s.substring(0,spacePos);
s = s.substring(spacePos +1);
System.out.println("Current word is " + currentWord);
System.out.println("Sentence is now " + s);
}
}
}
考虑您甚至改变's'后做什么_inside_循环。 –
我认为这是家庭作业(或类似),你正试图学习如何自己分割一个字符串。如果没有,你应该使用['String.split'函数](http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#split%28java.lang.String% 29)。 –