gpt4 book ai didi

java - 用于调节和字符串匹配

转载 作者:行者123 更新时间:2023-11-30 06:57:44 25 4
gpt4 key购买 nike

给定 2 个字符串 a 和 b,返回它们包含相同长度的 2 个子字符串的位置数。所以 "xxcaazz""xxbaaz" 产生 3,因为 "xx""aa""az" 子字符串出现在两个字符串中的相同位置。

我的代码:为某些输入抛出 IndexOutOfBoundsException

public int stringMatch(String a, String b) {
int count=0;
for(int i=0;i<a.length()-1;i++){
if(a.charAt(i)==b.charAt(i))
if (a.charAt(i+1)==b.charAt(i+1)){
count +=1;
}
}
return count;

}

每当我为这些类型的问题编写代码时,我总是遇到“索引越界”,我必须将循环 length(a.length()-1 更改为 a.length()-2) 左右。当循环体变为 i+1 或大量递增时,是否有可靠的方法来确定循环长度。

最佳答案

for(int i=0;i<a.length()-1;i++)

是迭代第一个 String a 的字符对的正确方法。

但是,你有两个String,它们的长度可能不同,但是for循环的条件只测试了a的长度,它可能比b,所以b.charAt(i)b.charAt(i+1)可能会抛出异常。

你应该用两个字符串的长度来限制你的循环:

for(int i=0;i<a.length()-1 && i<b.length()-1;i++)

这将避免 IndexOutOfBoundsException

关于java - 用于调节和字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33330404/

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