Java 同时添加两个字符串

Java 同时添加两个字符串,java,Java,我想在输出应该是 如果字符串s1=abc; 字符串s2=xyzwert 两个字符串的输出应为axbyczwert 谢谢此代码将执行您想要的操作: String s1 = "abc"; String s2 = "xyzwerwer"; StringBuilder sb = new StringBuilder(); if (s1.length() > s2.length()) { for (int i = 0; i < s2.length(); i++) { sb

我想在输出应该是 如果字符串s1=abc; 字符串s2=xyzwert

两个字符串的输出应为axbyczwert


谢谢

此代码将执行您想要的操作:

String s1 = "abc";
String s2 = "xyzwerwer";
StringBuilder sb = new StringBuilder();
if (s1.length() > s2.length()) {
    for (int i = 0; i < s2.length(); i++) {
        sb.append(s1.charAt(i));
        sb.append(s2.charAt(i));
    }
    sb.append(s1.substring(s1.length() - (s1.length() - s2.length())));
} else {
    for (int i = 0; i < s1.length(); i++) {
        sb.append(s1.charAt(i));
        sb.append(s2.charAt(i));
    }
    sb.append(s2.substring(s2.length() - (s2.length() - s1.length())));
}
String s3 = sb.toString();
System.out.println(s3);

编辑代码以处理最新问题。

假设两个字符串长度相同:

StringBuilder sb = new StringBuilder();
for(int i = 0; i < str1.length(); i++) {
    sb.append(str1.charAt(i)).append(str2.charAt(i));
}
String result = sb.toString();
如果一个字符串较长,则需要以下内容:

StringBuilder sb = new StringBuilder();
int i = 0;
for(int len = Math.min(str1.length(), str2.length()); i < len; i++) {
    sb.append(str1.charAt(i)).append(str2.charAt(i));
}
if(str1.length() != str2.length()) {
    String longerStr = str1.length() > str2.length() ? str1 : str2;
    sb.append(longerStr.substring(i));
}
String result = sb.toString();
这对你有帮助

//Check if s1 or s2 is longer, if s1 is longer, set maxLength as s1.length. vice versa
int maxLength = (s1.length() > s2.length()) ? s1.length() : s2.length();
//Default result string
String result = "";
//Loop through the max number of characters based on the result earlier
//Slowly add each character of both s1 and s2 to the result string starting from index0
//This will result in the alternate adding of characters from both strings
for(int i=0; i<maxLength; i++)
{
    //Check if s1 is shorter than the maxLength to prevent index out of range.
    if(i < s1.length())
    {
        result += Character.toString( s1.charAt(i) );
    }

    //Check if s2 is shorter than the maxLength to prevent index out of range.
    if(i < s2.length())
    {
        result += Character.toString( s2.charAt(i) );
    }
}
System.out.println (result);

String.charAt index和StringBuilder append的使用应该可以做到这一点。如果只有2个字符串,可以使用+运算符将它们连接起来。s1+s2会产生你想要的结果want@MirekSurma仔细看。每个字符串的内容是交错的。直接连接不起作用是的,我已经尝试了这两种方法,但都不起作用,它会显示索引外的字符串异常嗨,如果我有这样的字符串怎么办–String str1=abc;字符串str2=xyzwer;如果其中一个字符串中的字符数大于另一个字符串中的字符数,那么这里我想以axbyczwerwerHi的形式获得输出,如果我的字符串是这样的,那会怎么样–String str1=abc;字符串str2=xyzwer;如果其中一个字符串中的字符数大于另一个字符串中的字符数,那么这里我想以axbyczwerwerHi的形式获得输出,如果我的字符串是这样的,那会怎么样–String str1=abc;字符串str2=xyzwer;其中一个字符串中的字符数大于另一个字符串中的字符数,在这里,我希望得到的输出为axbyczwerstring s1=abc;字符串s2=xyzasdasd;字符串s3=s1+s2;StringBuilder sb=新的StringBuilder;forint i=0;i