当前位置: 首页 > 知识库问答 >
问题:

如何建立一个字符串采取交替的字符从两个等长的输入字符串?

司徒元明
2023-03-14

我的问题是-

给定两个长度相等的字符串s1和s2作为输入,预期的输出是一个字符串,其中s1的第一个字符,s2的第一个字符,s1的第二个字符,s2的第二个字符,依此类推。例如,如果s1=“外部”,s2=“空间”,则输出为“OSuptaecre”。

我已经用循环完成了,我想知道这个程序是否还有其他简单的代码,比如使用字符串函数。

public class JoinChars {

    static String testcase1 = "Right";
    static String testcase2 = "Wrong";

    public static void main(String args[]){
        JoinChars testInstance= new JoinChars();
        String result = testInstance.join(testcase1,testcase2);
        System.out.println(result);
    }

    public String join(String str1, String str2){
        String str3="";
        if(str1.length()>=str2.length()){
            for(int i=0;i<str1.length();i++){
                str3+=str1.charAt(i);
                for(int j=i;j<str2.length();){
                    str3+=str2.charAt(j);
                    break;
                }
            }
        }
        else if(str2.length()>=str1.length()){
            for(int i=0;i<str2.length();i++){
                str3+=str2.charAt(i);
                for(int j=i;j<str1.length();){
                    str3+=str1.charAt(j);
                    break;
                }
            }
        }
        return str3;
    }
}

共有3个答案

况鸿雪
2023-03-14

//合并两个字符串的交替字符的程序

public class MergedString {

  public static String getMergedString(String a,String b){
    String mergedString="";
    for(int i=0;i<a.length();i++){
        mergedString=mergedString+a.charAt(i);
        if(i<b.length()){
            mergedString=mergedString+b.charAt(i);
          }         
    }
    if(a.length()<b.length()){
        mergedString=mergedString+b.substring(a.length());
    }
    return mergedString;
  }
  public static void main(String[] args) {
    String ms=getMergedString("abcd","xyztkhj");
    System.out.print("Merged String:"+ms);

  }
}
鞠通
2023-03-14
public String join(String str1, String str2){
    String str3="";
    if(str1.length()>=str2.length()){
        for(int i=0;i<str1.length();i++){
            str3 += s1.charAt(i);
            str3 += s2.charAt(i);
        }
    }
    else if(str2.length()>=str1.length()){
        for(int i=0;i<str2.length();i++){
            str3 += s1.charAt(i);
            str3 += s2.charAt(i);
        }
    }
    return str3;
}

那样更容易些

周越泽
2023-03-14

你是说这样的?

String result = "";
for(int i=0; i<s1.length();i++){
  result += s1.charAt(i);
  result += s2.charAt(i);
}
return result;

请注意,s1和s2是两个长度相等的字符串输入。

 类似资料:
  • 问题内容: 假设我们有类似的东西: 我想将“ someText”替换为其他内容。考虑到我不知道someText可能是什么(任何字符串)并且我所知道的是它将被&firstString =和&endString =包围的事实,最佳方法是什么? 编辑:对不起,看起来这还不够清楚。我不知道“ someText”可能是什么,我仅有的信息是它将位于&firstString =和&endString =之间 我

  • 问题内容: 假设我有以下代码: 这段代码运行后,价值会 如果我以相反的顺序替换它们,则会发生类似的问题: 的值将是 我的目标是把成我怎么能做到呢? 问题答案: 使用Apache Commons StringUtils中的方法:

  • 问题内容: 我想使用函数替换多个字符串。 我目前有 但想有类似的东西 虽然那听起来不像是好的语法 正确的方法是什么?有点像如何在中进行操作\1以及\2如何将字段替换为某些搜索字符串 问题答案: 这是一个简短的示例,应该使用正则表达式来解决问题: 例如: ’() and –text–‘

  • 问题内容: 我需要从两个字符之间获取字符串。我有这个 并且必须在一个变量中分别返回4个字符串: 问题答案: 有。由于它接受正则表达式字符串,并且是正则表达式中的特殊字符,因此您需要对其进行转义(带有反斜杠)。而且,由于是在Java中字符串字面特殊字符,你需要逃脱 它 ,也一样,人们有时会感到迷惑。因此给出: 然后 将输出 ( 在 前三位上 有 尾随空格;如果需要,这些空格。)

  • 我已经做了一个有效的解决方案,但它很无聊,也很不优雅: 如何使用Regex实现这一点?

  • 我希望我的程序替换输入字符串中的每个元音。