我有 3 个不同的数组,一个包含 6 个字母的单词,另一个数组包含 5 个字母的单词,另一个包含 4 个字母的单词。每行每个长度最多需要一个单词。首先,如果行中尚未放置最长长度 (6) 的单词,则出现该单词。然后是一个空格,然后是一个中等长度的单词 (5)(如果有)。然后,最后是最短长度的单词 (4)(如果有)。利用\n 和\t 示例:
Array1:[banana, orange, null, null, null, null, null]
Array2:[apple, orang, range, green, ocean, null, null, null, null]
Array3:[taco, oran, rang, blue, pool, done, null, null, null, null, null]
输出:
banana apple taco
orange orang oran
range rang
green blue
ocean pool
done
这是我尝试过的,但它只正确打印第一行。
public static String output(String[] fourLetter, String[] fiveLetter, String[] sixLetter){
String answer = null;
String answer1 = null;
String answer2 = null;
String answer3 = null;
for (int i =0 ; i < sixLetter.length;i++){
answer1 = sixLetter[i] +" ";
for (int j =0 ; j < fiveLetter.length;j++){
answer2 = answer1+ fiveLetter[j] +" ";
for (int k =0 ; k < fourLetter.length;k++){
for(int l = 0;l<3;l++){
answer3 += answer2 +shortest[k]+"\n\t";
}
}
}
}answer = answer3;
return answer;
}
最佳答案
你不需要有那么多的for循环。看看这个:
public static String output(String[] fourLetter, String[] fiveLetter, String[] sixLetter){
String answer = "";
for(int i=0; i<Math.max(Math.max(fourLetter.length, fiveLetter.length),sixLetter.length);i++){
if(sixLetter.length>i){
answer += sixLetter[i] + " ";
}
if(fiveLetter.length>i){
answer += fiveLetter[i] + " ";
}
if(fourLetter.length>i){
answer += fourLetter[i];
}
answer += "\n";
}
return answer;
}
关于java - 如何按一定顺序打印 3 个不同字符串数组的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42856806/