gpt4 book ai didi

java - 切割字符串

转载 作者:行者123 更新时间:2023-12-02 17:31:38 24 4
gpt4 key购买 nike

我第一次尝试对字符串进行切片。

使用这段代码,如果我输入,例如“一二三”,它可以正常工作,直到最后一个单词。这是输出的最后几行:

当前单词是thr

句子现在是e

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);
}
}
}

最佳答案

首先,你打电话

spacePos = s.indexOf(" ");
length = s.length();

仅一次,但这些值应随着循环的每次迭代而改变。此外,

s.substring(spacePos +1);

spacePos == s.length()-1

表示您正在传递超出字符串末尾的索引作为 substring()start 索引。一旦您修复了第一个错误,这将是您的下一个异常。

关于java - 切割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21467266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com