我有两个String
,例如:
s1=abcd
s2=abfg
我想比较这两个String
并打印起始String
,直到它们不同为止。例如,我想在这种情况下打印ab
。我怎样才能得到这个结果?
答案 0 :(得分:1)
package simple;
public class Simple {
public static void main(String[] args) {
String s1 = "abcf";
String s2 = "abdf";
StringBuilder sb = new StringBuilder();
int k = s1.length() < s2.length() ? s1.length() : s2.length();
for (int i = 0; i < k; i++) {
if (s1.charAt(i) == s2.charAt(i)) {
sb.append(s1.charAt(i));
} else {
break;
}
}
System.out.print(sb);
}
}
答案 1 :(得分:1)
正如@IvanPronin所提到的,如果您经常这样做,您可以使用 StringUtils 的 indexOfDifference :
String s1 = "abcf";
String s2 = "abdf";
System.out.println(s1.substring(0, StringUtils.indexOfDifference(s1, s2)));
但你必须下载jar并包含它。 Download link
答案 2 :(得分:0)
您可以使用substring(int startIndex,int endIndex)从每个位置拆分字符串,
String s1 = "abcd";
String s2 = "abfg";
List<String> stringlist = new ArrayList<String>();
String shortest = null;
if(s1.length() <= s2.length()){
shortest = s2;
}
for(int i = 1 ; i<shortest.length() ; i++){
if(s1.substring(0,i).equals(s2.substring(0,i))){
stringlist.add(s1.substring(0,i));
}
}
System.out.println(stringlist.get(stringlist.size()-1));