如何使用Java中的Scanner创建具有指定行大小的2D数组,而不指定列大小?
这是一个java代码如何使用Java中的Scanner创建具有指定行大小的2D数组,而不指定列大小?,java,arraylist,multidimensional-array,java.util.scanner,Java,Arraylist,Multidimensional Array,Java.util.scanner,这是一个java代码 public class Demo { public static void main(String[] args) { Scanner sc=new Scanner (System.in); System.out.println("enter the no of rows"); int n =sc.nextInt(); Array
public class Demo {
public static void main(String[] args)
{
Scanner sc=new Scanner (System.in);
System.out.println("enter the no of rows");
int n =sc.nextInt();
ArrayList<Integer>[] al = new ArrayList[n];
for (int i = 0; i < n; i++)
{
al[i] = new ArrayList<Integer>();
}
System.out.println("enter the value");
int val=0;
for (int i = 0; i < n; i++)
{
while(val!='\n')
{
val=sc.nextInt();
al[i].add(val);
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < al[i].size(); j++) {
System.out.print(al[i].get(j) + " ");
}
System.out.println();
}
}
}
公共类演示{
公共静态void main(字符串[]args)
{
扫描仪sc=新的扫描仪(System.in);
System.out.println(“输入行数”);
int n=sc.nextInt();
ArrayList[]al=新的ArrayList[n];
对于(int i=0;i
我试图通过使用ArrayList数组来实现。但是,当从用户那里获取输入时,会导致无限的输入
val
是一个int
,不要将其与换行符进行比较。将其更改为:
while (val != -1)
然后输入-1
停止
如果用户可以输入-1作为有效元素,则可以将val
更改为字符串,替换sc.nextInt()
调用,并将输入解析为int。确保使用.equals()
而不是=
比较字符串
新行馈送('\n')的ASCII值为10。因此,如果您选择继续使用当前代码,则必须通过输入值
10
(这会很奇怪,而且10不能作为有效元素添加)来停止循环
while (val != -1)