在Java中比较2个字符串

时间:2017-05-19 06:40:34

标签: java string

我有两个String,例如:

s1=abcd
s2=abfg

我想比较这两个String并打印起始String,直到它们不同为止。例如,我想在这种情况下打印ab。我怎样才能得到这个结果?

3 个答案:

答案 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));