2 つの文字列があり、そのうちの 1 つの長さは関数の実行時にのみわかるという問題があります。これらの 2 つの文字列を取り、どちらが長いかに基づいて、次のように最終的な文字列を計算するように関数を記述したいと思います -
finalString = longerStringChars1AND2
+ shorterStringChar1
+ longerStringChars3and4
+ shorterStringChar2
+ longerStringChars5AND6
...というように、短い文字列が終了するまで続きます。
短い文字列が終了したら、長い文字列の残りの文字を最後の文字列に追加して終了します。いくつかのコードを書きましたが、私の好みではループが多すぎます。助言がありますか?
これが私が書いたコードです - 非常に基本的な - public static byte [] generateStringToConvert(String a, String b){ (文字列 b の長さは常に 14 であることが知られています。)
StringBuffer stringToConvert = new StringBuffer();
int longer = (a.length()>14) ? a.length() : 14;
int shorter = (longer > 14) ? 14 : a.length();
int iteratorForLonger = 0;
int iteratorForShorter = 0;
while(iteratorForLonger < longer) {
int count = 2;
while(count>0){
stringToConvert.append(b.charAt(iteratorForLonger));
iteratorForLonger++;
count--;
}
if(iteratorForShorter < shorter && iteratorForLonger >= longer){
iteratorForLonger = 0;
}
if(iteratorForShorter<shorter){
stringToConvert.append(a.charAt(iteratorForShorter));
iteratorForShorter++;
}
else{
break;
}
}
if(stringToConvert.length()<32 | iteratorForLonger<b.length()){
String remainingString = b.substring(iteratorForLonger);
stringToConvert.append(remainingString);
}
System.out.println(stringToConvert);
return stringToConvert.toString().getBytes();
}