比较Java中的两个字符串

比较Java中的两个字符串,java,string,Java,String,我有两个字符串,例如: s1=abcd s2=abfg 我想比较这两个Strings并打印起始String,直到它们不同。例如,在这种情况下,我想打印ab。我怎样才能得到这个结果?packagesimple; package simple; public class Simple { public static void main(String[] args) { String s1 = "abcf"; String s2 = "abdf";

我有两个
字符串,例如:

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

packagesimple;
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);
    }
}
公共类简单{ 公共静态void main(字符串[]args){ 字符串s1=“abcf”; 字符串s2=“abdf”; StringBuilder sb=新的StringBuilder(); int k=s1.length()
如@IvanPronin所述,如果您经常这样做,您可以使用StringUtils的索引差异

String s1 = "abcf";
String s2 = "abdf";
System.out.println(s1.substring(0, StringUtils.indexOfDifference(s1, s2)));
但是您必须下载jar并包含它

您可以使用子字符串(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));
String s1=“abcd”;
字符串s2=“abfg”;
List stringlist=新建ArrayList();
字符串最短=空;

如果(s1.长度()转换为字符数组并将loopLook转换为
org.apache.commons.lang3.StringUtils
类,其中包含大量有用的
String
methods@IvanPronin具体地说,你在说什么?你可以循环而不必转换成字符数组。只需使用一个达到最短字符串长度的for循环,然后使用charAt字符串类上的()方法。