不会输入字符串值
String value won't inputted
我还是编程初学者。
我的字符串值不会输入数组
如果我输入"y"后输入所有的a b c,那么输入a b c数组就得到最后一个
String a, b, c, d;
int x = 0;
Scanner in = new Scanner(System.in);
do {
x++;
int e = x - 1;
array = new String[x][3];
System.out.println("input a : ");
a = in.nextLine();
array[e][0] = a;
System.out.println("input b : ");
b = in.nextLine();
array[e][1] = b;
System.out.println("input c : ");
c = in.nextLine();
array[e][2] = c;
System.out.println("Again ? (y/n)");
d = in.nextLine();
} while (d.equals("y"));
for (int i = 0; i < array.length; i++) {
System.out.println("Output "+(i+1)+" : ");
System.out.println("a :" + array[i][0]);
System.out.println("b :" + array[i][1]);
System.out.println("c :" + array[i][2]);
System.out.println("");
}
}
在 do-while
循环中,您在每次迭代中将新的 String
数组分配给 array
。因此它不会存储以前输入的值。所以最后当你打印它时,你只会得到最后输入的条目,之前输入的条目将是 null
因为新定义的数组最初的所有元素都是 null
。
所以你需要在 do-while
循环之外定义数组。
array = new String[4][3]; //Define array here of any appropriate size
do {
x++;
int e = x - 1;
System.out.println("input a : ");
a = in.nextLine();
array[e][0] = a;
System.out.println("input b : ");
b = in.nextLine();
array[e][1] = b;
System.out.println("input c : ");
c = in.nextLine();
array[e][2] = c;
System.out.println("Again ? (y/n)");
d = in.nextLine();
} while (d.equals("y"));
如果您不知道 Array
的总大小,您可以使用像 ArrayList<String>
这样的动态结构。您可以手动使用 ArrayList of ArrayList
或只是不同的 ArrayList
但如果您的总输入可能更多,那么最好使用 ArrayList of ArrayList
.
不同的数组列表:
如果您知道所有可能的输入,此方法将对您有所帮助。所以这里我们知道我们总共有 3
个可能的输入 a
、b
和 c
所以为每个 a
、b
和 c
.
ArrayList<String> listA=new ArrayList<String>();
ArrayList<String> listB=new ArrayList<String>();
ArrayList<String> listC=new ArrayList<String>();
do {
System.out.println("input a : ");
a = in.nextLine();
System.out.println("input b : ");
b = in.nextLine();
System.out.println("input c : ");
c = in.nextLine();
listA.add(a);
listB.add(b);
listC.add(c);
System.out.println("Again ? (y/n)");
d = in.nextLine();
} while (d.equals("y"));
for (int i = 0; i < listA.length; i++)
{
System.out.println("Output "+(i+1)+" : ");
System.out.println("a :" + listA.get(i));
System.out.println("b :" + listB.get(i));
System.out.println("c :" + listC.get(i));
System.out.println("");
}
我还是编程初学者。
我的字符串值不会输入数组
如果我输入"y"后输入所有的a b c,那么输入a b c数组就得到最后一个
String a, b, c, d;
int x = 0;
Scanner in = new Scanner(System.in);
do {
x++;
int e = x - 1;
array = new String[x][3];
System.out.println("input a : ");
a = in.nextLine();
array[e][0] = a;
System.out.println("input b : ");
b = in.nextLine();
array[e][1] = b;
System.out.println("input c : ");
c = in.nextLine();
array[e][2] = c;
System.out.println("Again ? (y/n)");
d = in.nextLine();
} while (d.equals("y"));
for (int i = 0; i < array.length; i++) {
System.out.println("Output "+(i+1)+" : ");
System.out.println("a :" + array[i][0]);
System.out.println("b :" + array[i][1]);
System.out.println("c :" + array[i][2]);
System.out.println("");
}
}
在 do-while
循环中,您在每次迭代中将新的 String
数组分配给 array
。因此它不会存储以前输入的值。所以最后当你打印它时,你只会得到最后输入的条目,之前输入的条目将是 null
因为新定义的数组最初的所有元素都是 null
。
所以你需要在 do-while
循环之外定义数组。
array = new String[4][3]; //Define array here of any appropriate size
do {
x++;
int e = x - 1;
System.out.println("input a : ");
a = in.nextLine();
array[e][0] = a;
System.out.println("input b : ");
b = in.nextLine();
array[e][1] = b;
System.out.println("input c : ");
c = in.nextLine();
array[e][2] = c;
System.out.println("Again ? (y/n)");
d = in.nextLine();
} while (d.equals("y"));
如果您不知道 Array
的总大小,您可以使用像 ArrayList<String>
这样的动态结构。您可以手动使用 ArrayList of ArrayList
或只是不同的 ArrayList
但如果您的总输入可能更多,那么最好使用 ArrayList of ArrayList
.
不同的数组列表:
如果您知道所有可能的输入,此方法将对您有所帮助。所以这里我们知道我们总共有 3
个可能的输入 a
、b
和 c
所以为每个 a
、b
和 c
.
ArrayList<String> listA=new ArrayList<String>();
ArrayList<String> listB=new ArrayList<String>();
ArrayList<String> listC=new ArrayList<String>();
do {
System.out.println("input a : ");
a = in.nextLine();
System.out.println("input b : ");
b = in.nextLine();
System.out.println("input c : ");
c = in.nextLine();
listA.add(a);
listB.add(b);
listC.add(c);
System.out.println("Again ? (y/n)");
d = in.nextLine();
} while (d.equals("y"));
for (int i = 0; i < listA.length; i++)
{
System.out.println("Output "+(i+1)+" : ");
System.out.println("a :" + listA.get(i));
System.out.println("b :" + listB.get(i));
System.out.println("c :" + listC.get(i));
System.out.println("");
}