gpt4 book ai didi

Java:尝试运行字符串函数时出现字符串索引越界错误

转载 作者:行者123 更新时间:2023-12-02 06:30:53 24 4
gpt4 key购买 nike

package unl.cse.strings;
import java.lang.Character;
import java.lang.String;

public class StringUtils {
public static int longestCommonPrefix(String a, String b){
int sizeOfResult=0;
int size=0;
int i=0;
if (a.length() == 0 || b.length() == 0 ){
return sizeOfResult;
} else if (a.length()>b.length()){
size = a.length();
} else {
size = b.length();
}
for(i=0; i<size; i++){
if(a.charAt(i) != b.charAt(i)){
break;
}
sizeOfResult++;
}
return sizeOfResult;
}

public static String removeBlanks(String s){
StringBuilder sb = new StringBuilder();
for(int i=0; i<s.length(); i++) {
if(!Character.isWhitespace(s.charAt(i))) {
sb.append(s.charAt(i));
}
}
return sb.toString();
}
public static String flipCase(String s){
StringBuilder sb = new StringBuilder();
int i = 0;

for (i=0;i<s.length();i++) {
if (Character.isLetter(s.charAt(i))) {
if (Character.isUpperCase(s.charAt(i))){
sb.append(Character.toLowerCase(s.charAt(i)));
}
if (Character.isLowerCase(s.charAt(i))) {
sb.append(Character.toUpperCase(s.charAt(i)));
}
}
else {
sb.append(Character.toUpperCase(s.charAt(i)));
}
}
return sb.toString();
}
}

当我编译程序时,我得到:

Testing longestCommonPrefix(glossary, gloss) ... Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 5 at java.lang.String.charAt(String.java:658) at unl.cse.strings.StringUtils.longestCommonPrefix(StringUtils.java:17) at unl.cse.strings.StringUtilsGrader.testLCP(StringUtilsGrader.java:15) at unl.cse.strings.StringUtilsGrader.main(StringUtilsGrader.java:78) WARNING: process exited with a(n) Unknown (1) error code

我不确定在哪里尝试访问超出范围的字符串部分。

最佳答案

您将size设置为等于两个长度中较长的一个,但您应该使用两个长度中较短的一个。

            //...
} else if (a.length()>b.length()){
size = a.length();
//...

这肯定会导致出现越界异常(就像您现在所做的那样):

            } for(i=0; i<size; i++){
if(a.charAt(i) != b.charAt(i)){

关于Java:尝试运行字符串函数时出现字符串索引越界错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20062165/

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