假设我有用户输入 2 个不同的名称。例如:
firstName = "Stack Overflow"
secondName = "Stack Exchange"
我想要做的是比较它们,这意味着单词"Stack"
将被消除,然后剩余的字符串字符将输出为数字。
"overflow"
将输出为8
,与"Exchange"
应该输出相同8
。
有没有我可以使用的方法?我只是一个新手,所以我会欣赏非array
方法或一些高级 Java 方法。
一些有用的方法:
对不同字符长度的迭代会给你一个数字,但我不确定你想要输出更长的字符串还是更短的字符串。(无论哪种情况,使用循环都会有所帮助。)
您可以尝试遍历两个字符串中的字符,逐步比较它们,直到找到不同的字符。此时,您只需返回字符串的长度减去公共前缀中的字符数。
尝试这样的事情(代码未经测试,你可能需要做一些调整——这也只返回第一个参数字符串的长度减去前缀):
public int stringLength( String s1, String s2 )
{
for ( int i = 0 ; i < Math.min( s1.length(), s2.length() ) ; i++ )
{
if ( s1.charAt( i ) != s2.charAt( i )
{
return s1.length() - i;
}
}
return s1.length();
}
据我了解,您想从两个字符串中删除公共元素:如果是这样,则解决方案: String str1 = "Stack Overflow"; 字符串 str2 = "堆栈交换";
ArrayList arr1 = new ArrayList();
ArrayList arr2 = new ArrayList();
for(int i = 0; i < str1.length(); i++) {
arr1.add(str1.charAt(i));
}
for(int i = 0; i < str2.length(); i++) {
arr2.add(str2.charAt(i));
}
arr1.retainAll(arr1);
java.util.List<ArrayList> chars = Arrays. asList(arr1);
String str = chars.toString().replace(",","");
return str;