2){ String spac-6ren">
gpt4 book ai didi

java - 通过 split 返回 java.lang.StringIndexOutOfBoundsException 将前两个单词的第一个字符大写的脚本

转载 作者:行者123 更新时间:2023-11-30 07:17:37 25 4
gpt4 key购买 nike

这是我遇到错误的摘录:`

String[] splitbyspace = search.split(" ");

if(splitbyspace.length > 2){
String spacesplitted = splitbyspace[0].substring(0, 1).toUpperCase() + splitbyspace[0].substring(1) + " " + splitbyspace[1].substring(0, 1).toUpperCase() + splitbyspace[1].substring(1);
searchIdx = content.indexOf(spacesplitted);

if(searchIdx != -1){
String sentence = content.substring(searchIdx+search.length()+1, content.indexOf('.', searchIdx));
sentence = sentence.replace("\"", "");
sentences.add(sentence);
}
}

这是错误:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.substring(String.java:1963)
at Untitled2.taste(Untitled2.java:127)
at Untitled2.answer(Untitled2.java:69)
at Untitled2.main(Untitled2.java:29)

在循环索引方面我做错了什么? String search 的内容是:

乔治布什是

我想要字符串空格分割将其变成

乔治布什是

但这并没有发生。

抛出的异常java.lang.StringIndexOutOfBoundsException:字符串索引超出范围位于27处,但对应于上述摘录中代码块中的第3行。这是使用String spacesplitted 的地方。

最佳答案

我尝试在开始时运行你的代码

String content = "George Bush is";
int searchIdx;

并且它可以工作(至少符合异常 - 如果有另一个问题则第二个)。想一想,问题是 search 开头有空格或内部有两个空格,而你的 splitbyspace 有一些空字符串。尝试将每个步骤的结果存储在单独的变量中并在调试中运行它。另外,为了使其真正防错,请仔细阅读 String#split javadoc - 它有一些有趣的东西。

最后,如果此代码不仅仅用于教育,我建议您使用一些库,其中已经实现了单词大写/拆分为句子。

关于java - 通过 split 返回 java.lang.StringIndexOutOfBoundsException 将前两个单词的第一个字符大写的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38117029/

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