【问题标题】:java: interleaving string arrays?java:交错字符串数组?
【发布时间】:2015-12-05 03:49:38
【问题描述】:

所以我很迷茫。这就是我的任务。我必须编写一个名为的 Java 方法,它接受两个字符串(称为你和 我)作为论据。该方法将返回一个由您的第一个字符组成的字符串,然后是 我的第一个角色,然后是你的下一个角色,然后是我的下一个角色,以此类推。例如: interleave("abcdefg", "1234" ) 返回 a1b2c3d4efg

【问题讨论】:

  • 无论何时提出问题,我们都非常感谢您提供您的代码 sn-p ...

标签: java


【解决方案1】:

试试这个:

public static String combine(String you, String me) {
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < me.length(); i++) {
            if (i < you.length()) {
                builder.append(you.charAt(i));
                builder.append(me.charAt(i));
            } else {
                builder.append(me.charAt(i));
            }
        }
        return builder.toString();
    }

我们遍历第二个参数(必须是更长的参数才能正常工作),然后将每个字符附加到字符串。只要我们没有到达第一个参数(较小的那个)的结尾,它就会这样做。之后,它只是附加较长字符串的其余部分。

所以如果我们这样做 System.out.println(combine("123456789", "abcdefghi"); 结果将是 1a2b3c4d5e6f7g8h9i

【讨论】:

    【解决方案2】:
    public void modify(String a1, String b1){
    
        int index = 0;
    
        int len1 = a1.length() > b1.length()? a1.length():b1.length();
        int len2 = a1.length() > b1.length()? b1.length():a1.length();
    
        for(int i=0;i<len1;i++){
    
            if(len2>0){
                System.out.print(""+a1.charAt(index)+b1.charAt(index));
                index++;
                len2--;
            }
            else{
    
                if(i<a1.length())
                {
                    System.out.print(""+a1.charAt(index));
                    index++;
                }
                else
                {
                    System.out.print(""+b1.charAt(index));
                    index++;
                }                       
    
            }           
        }   
    

    这个 modify() 接受两个字符串,其中较大的字符串存储在 len1 中,较小的字符串存储在 len2 中。

    'index' 用于提取字符串的特定索引。

    'for' 循环遍历较大的字符串并交替打印两个字符串。 然后无论哪个字符串较大,其其余内容都会被附加。

    例如: modify("abcdefg", "1234" ) 打印 a1b2c3d4efg。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-17
      • 1970-01-01
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-11
      相关资源
      最近更新 更多