假设我有2个不同的用户输入名称。例如:
firstName = "Stack Overflow"
secondName = "Stack Exchange"
我想要做的是比较它们,这意味着将删除单词"Stack"
,然后剩余的字符串字符将作为数字输出。
"overflow"
将输出为8
,与输出"Exchange"
的{{1}}相同。
有没有可以使用的方法?我只是一个新手,所以我很欣赏非8
方法或一些高级Java方法。
答案 0 :(得分:2)
一些有用的方法:
对不同字符长度的迭代会给你一个数字,但是我不确定你是想要输出更长的String还是更短的String。 (无论哪种情况,使用循环都会有所帮助。)
答案 1 :(得分:1)
您可以尝试迭代两个字符串中的字符,逐步比较它们,直到找到不同的字符。此时,您只需返回字符串的长度减去公共前缀中的字符数。
尝试这样的事情(代码没有经过测试,你可能需要做一些调整 - 这也只返回第一个参数字符串的长度减去前缀):
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();
}
答案 2 :(得分:0)
据我了解,您想从两个字符串中删除“公共元素”:如果是,这是解决方案: 字符串str1 =“堆栈溢出”; 字符串str2 =“ Stack Exchange”;
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;