我想使用数组和方法编写一个Java程序:它读取一个字符串序列,每个字符串在一个单独的行上,并将它们存储在一个数组中,让它称为input1,每个单元格有一个字符串,顺序他们被读了。序列以空行结束:一个字符串长度为0.与第二个序列相同。然后打印第一个序列和第二个序列。然后创建一个包含上述两个数组的所有元素的数组。通过在数组之间交替来完成合并:即,复制input1的第一个单元格,然后复制input2的第一个单元格。然后复制input1的第二个单元格,然后复制input2的第二个单元格。当然,通常,两个序列可以具有不同的长度,因此在较短的序列完成之后,较长序列的所有元素被简单地附加到输出阵列。最后,打印合并的数组,每行包含1个字符串。
import java.util.Scanner;
public class A4 {
public static void readInput(Scanner myScanner, String[] input) {
boolean streamEnded = false;
int index = 0;
while (!streamEnded && myScanner.hasNext()) {
String value = myScanner.nextLine();
if (value.length() == 0) {
streamEnded = true;
input[index] = value;
} else {
input[index] = value;
index++;
}
}
}
public static void main(String[] args) {
int size = 5;
String[] input1 = new String[size];
String[] input2 = new String[size];
String[] store = new String[size*2];
Scanner aScanner = new Scanner(System.in);
readInput(aScanner, input1);
for (int i = 0; i < input1.length; i++) {
System.out.println("input[" + i +"]" + input1[i]);
}
readInput (aScanner, input2);
for (int i = 0; i < input2.length; i++) {
System.out.println("input[" + i +"]" + input2[i]);
}
}
}
我仍然不知道如何将这两个输入合并在一起。任何人都可以告诉我该怎么做?感谢
答案 0 :(得分:0)
为序列1,序列2和合并序列声明三个数组。
使用变量whichToUse存储要使用的数组,并在while循环之前为其分配array1,然后将值存储到System.out.print位置的array1中,然后在第一次到达value.length()==时0('='不是为比较而设计的,在你的代码中是错误的。),你将whichToUse指针改为array2。当第二个达到value.length()== 0时,结束读取循环。一个要标记的地方,将streamEnded声明为int来计算我们达到value.length()== 0的次数。仅在streamEnded == 2时退出循环。
现在你有两个数组,其中包含来自file的值。下一步是合并它们。使用for循环迭代merged-sequence中的项目,并使用循环计数器%2来确定在为合并序列项目赋值时要读取的数组。在任何array1和array2到达结尾之后,读取其余循环中的另一个数组。
看起来你是Java的新手,我认为自己编写代码比给我提供代码要好得多。如果您有任何其他问题,请在此处发表评论。