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(iteratorForShorterstringone=“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