Java中的奇妙循环

Java中的奇妙循环,java,Java,我有一个问题,我有两个字符串,其中一个字符串的长度只有在执行函数时才能知道。我想写我的函数,这样它将采取这两个刺,并根据其中一个更长,计算一个最终字符串如下- finalString = longerStringChars1AND2 + shorterStringChar1 + longerStringChars3and4 + shorterStringChar2 + longerStringChars5AND6 …以此类推,直到较短的字符串结束 短字符串结束后,

我有一个问题,我有两个字符串,其中一个字符串的长度只有在执行函数时才能知道。我想写我的函数,这样它将采取这两个刺,并根据其中一个更长,计算一个最终字符串如下-

finalString = longerStringChars1AND2
   + shorterStringChar1 
   + longerStringChars3and4 
   + shorterStringChar2 
   + longerStringChars5AND6
…以此类推,直到较短的字符串结束

短字符串结束后,我想将长字符串的剩余字符附加到最后一个字符串,然后退出。我已经写了一些代码,但是循环太多了。有什么建议吗

这是我写的代码-非常基本- 公共静态字节[]generateStringToConvert(字符串a、字符串b){ (已知字符串b的长度始终为14。)

StringBuffer-stringToConvert=new-StringBuffer();
int longer=(a.length()>14)?a.length():14;
int shorter=(longer>14)?14:a.length();
int迭代器forlonger=0;
int迭代器forshorter=0;
while(迭代器forlonger0){
追加(b.charAt(iteratorForLonger));
迭代器forlonger++;
计数--;
}
if(iteratorForShorter=longer){
迭代器forlonger=0;
}
if(iteratorForShorter
stringone=“longwordorsomething”;
字符串2=“short”;
字符串shortString=“”;
字符串longString=“”;
如果(一个.length()>两个.length()){
短字符串=两个;
长串=一;
}否则{
短字符串=一;
长串=2;
}
StringBuilder newString=新的StringBuilder();
int j=0;
对于(int i=0;i
stringone=“longwordorsomething”;
字符串2=“short”;
字符串shortString=“”;
字符串longString=“”;
如果(一个.length()>两个.length()){
短字符串=两个;
长串=一;
}否则{
短字符串=一;
长串=2;
}
StringBuilder newString=新的StringBuilder();
int j=0;
对于(int i=0;i
您可以使用
StringBuilder
来实现这一点。请查找以下源代码

  public static void main(String[] args) throws InterruptedException {

    int MAX_ALLOWED_LENGTH = 14;
    String str1 = "yyyyyyyyyyyyyyyy";
    String str2 = "xxxxxx";

    StringBuilder builder = new StringBuilder(MAX_ALLOWED_LENGTH);
    builder.append(str1);
    char[] shortChar = str2.toCharArray();
    int index = 2;
    for (int charCount = 0; charCount < shortChar.length;) {
        if (index < builder.length()) {
            // insert 1 character from short string to long string
            builder.insert(index, shortChar, charCount, 1);
        }
        // 2+1 as insertion index is increased after after insertion
        index = index + 3;
        charCount = charCount + 1;
    }
    String trimmedString = builder.substring(0, MAX_ALLOWED_LENGTH);
    System.out.println(trimmedString);

}

您可以使用
StringBuilder
来实现这一点。请查找下面的源代码

  public static void main(String[] args) throws InterruptedException {

    int MAX_ALLOWED_LENGTH = 14;
    String str1 = "yyyyyyyyyyyyyyyy";
    String str2 = "xxxxxx";

    StringBuilder builder = new StringBuilder(MAX_ALLOWED_LENGTH);
    builder.append(str1);
    char[] shortChar = str2.toCharArray();
    int index = 2;
    for (int charCount = 0; charCount < shortChar.length;) {
        if (index < builder.length()) {
            // insert 1 character from short string to long string
            builder.insert(index, shortChar, charCount, 1);
        }
        // 2+1 as insertion index is increased after after insertion
        index = index + 3;
        charCount = charCount + 1;
    }
    String trimmedString = builder.substring(0, MAX_ALLOWED_LENGTH);
    System.out.println(trimmedString);

}

把你的代码放在一个例子里,你能给出一个例子吗?2个输入字符串是什么,预期的结果是什么?给我们看看你的代码,我们可以看看是否有什么东西可以减少循环的数量。例如:“abcdef”和“pqrs”。长字符串将在短字符串之前结束。你想如何处理这个问题,因为问题是短字符串e首先是nds。据我所知,你只需要一个循环。你可以使用现有的函数来避免需要额外的循环。把你的代码放在一个例子上。你能给出一个例子吗?这两个输入字符串是什么,预期的结果是什么?向我们展示你的代码,我们可以看看是否有什么东西可以减少循环的数量。例如:“abcdef”和“pqrs”。Longer字符串将在较短字符串之前结束。您希望如何处理此情况,因为问题是较短字符串首先结束。据我所知,您只需要一个循环。您可以使用现有函数来避免需要额外的循环。
  public static void main(String[] args) throws InterruptedException {

    int MAX_ALLOWED_LENGTH = 14;
    String str1 = "yyyyyyyyyyyyyyyy";
    String str2 = "xxxxxx";

    StringBuilder builder = new StringBuilder(MAX_ALLOWED_LENGTH);
    builder.append(str1);
    char[] shortChar = str2.toCharArray();
    int index = 2;
    for (int charCount = 0; charCount < shortChar.length;) {
        if (index < builder.length()) {
            // insert 1 character from short string to long string
            builder.insert(index, shortChar, charCount, 1);
        }
        // 2+1 as insertion index is increased after after insertion
        index = index + 3;
        charCount = charCount + 1;
    }
    String trimmedString = builder.substring(0, MAX_ALLOWED_LENGTH);
    System.out.println(trimmedString);

}
   yyxyyxyyxyyxyy