gpt4 book ai didi

java - 返回两个字符串不同的数组位置

转载 作者:行者123 更新时间:2023-12-03 21:56:26 24 4
gpt4 key购买 nike

我正在尝试检查两个字符串在数组中的位置是否不同。例如,如果我有字符串 apple 和字符串 appendix 那么这两个字符串在 i = 3 的位置是不同的。

我如何用 Java 检查它?

代码

 //The first string is s.
char[] cArray = s.toCharArray();
// The seond string is root.edge.
char[] rootEdgeCharacter = root.edge.toCharArray();

for(int i=0; i<cArray.length; i++ ){
for(int j=0; j<rootEdgeCharacter.length; j++){
if(cArray[i]== rootEdgeCharacter[j]){
System.out.println("The String are different where i =" + i);

}
}
}

最佳答案

不要使用 .toCharArray(),它会不必要地创建一个 字符数组。请改用 .charAt()。

此外,您的代码不会“并行”遍历数组:您在索引 0、0、1、0、3、0 等处迭代。这不是您想要的。

这是一种解决方案;请注意,对于长度不等的字符串,它将返回较小的长度,如果两个字符串相等,则返回 -1:

public static int findDifferingIndex(final String s1, final String s2)
{
final int len1 = s1.length();
final int len2 = s2.length();
final int len = Math.min(len1, len2);

for (int index = 0; index < len; index++)
if (s1.charAt(index) != s2.charAt(index))
return index;

// Check the length of both strings; if they are equal, return -1.
// Otherwise return the length `len`.
return len1 == len2 ? -1 : len;
}

关于java - 返回两个字符串不同的数组位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33784245/

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