如何从我知道行大小但不知道列大小的标准输入中打印二维数组?
标准输入的第一行是行大小,接下来的几行是行数,每个列元素的输入用空格分隔。例如
3
1 2 3
3 4 5
6 9 3
这就是我正在用我的代码尝试的
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int rows = sc.nextInt(); // Number of rows
int[][] arr = new int[rows][];
for(int i = 0; i < rows; i++){
}
}
忽略第一行。
List<String[]> lines = new ArrayList<>();
sc.nextLine(); //skip line 1
while (sc.hasNextLine())
lines.add(sc.nextLine().split(" "));
要打印:
lines.stream().map(Arrays::toString).forEach(System.out::println);
String line = sc.nextLine();
String values[] = line.split(" ");
// Now each item of values contains an item of the line, convert it to the type you want and store in your two dimensional array, line by line
// the row count will be values.length
如果您想要列值,那么您需要拆分每行。拆分行时,您将知道列数。例如:
public static void main(String[] args) {
String input = "3\n" +
"1 2 3\n" +
"3 4 5\n" +
"6 9 3\n";
Scanner scanner = new Scanner(input);
int rows = scanner.nextInt();
scanner.nextLine();
int[][] arr = new int[rows][];
for (int i = 0; i < rows; ++i) {
String line = scanner.nextLine();
arr[i] = lineToIntArray(line);
}
}
private int[] lineToIntArray(String line) {
String[] cols = line.split(" ");
int[] ints = new int[cols.length];
for (int i = 0; i < cols.length; ++i) {
ints[i] = Integer.parseInt(cols[i]);
}
return ints;
}
或使用Java 8:
private int[] lineToIntArray(String line) {
return Arrays.asList(line.split(" ")).stream().mapToInt(Integer::parseInt).toArray();
}
问题内容: 有没有一种方法可以在Java中创建数组,而无需先定义或要求其长度? 再次,用户输入一些数字作为参数,然后程序创建了一个包含这么多参数的数组。 问题答案: 有没有一种方法可以在Java中创建数组,而无需先定义或要求其长度?再次,用户输入一些数字作为参数,然后程序创建了一个包含这么多参数的数组。 目前尚不清楚您所处的状态。如果您知道执行时的数组长度而不是编译时的数组长度,那就可以了: 您可
嗨,我是一个非常新的编码,并试图弄清楚如何创建一个二维数组。它要求用户输入行和列大小,然后用随机数填充那些选定的行和列大小。经过几天的努力,我决定来这里寻求帮助。这是我到目前为止所拥有的,它遍布我所知道的所有地方。
问题内容: 好的,所以我有一个二维数组z [50][50],因此z的大小是50*50,但是如果我说z.length,我只能得到50。如何获得2D数组的实际大小? 问题答案: 在Java中,二维数组实际上是长度可能不同的数组的数组(不能保证在二维数组中第二维数组的长度都相同) 您可以将任何第二维数组的长度作为where 。 如果将二维数组视为矩阵,则可以简单地获取和,但是请注意,您可能会假设第二维的
问题内容: 我正在向stdin写入大量数据。 我如何确保它不会阻塞? 我读了一个大字符串并将其写入后,似乎无法解决。 我有大量的文件集,这些文件将被顺序写入stdin(> 1k个文件) 所以发生的事情是我正在运行一个循环 它以某种方式挂在文件号上。400.该文件是带有长字符串的大文件。 我确实怀疑这是一个阻碍性问题。 仅当我从0迭代到1000时才会发生这种情况。但是,如果我要从文件400开始,则不
如何动态调整列的大小以支持可能的不规则数组? 上面的代码会分配每个col的长度吗? 事先谢谢你的帮助。
我有一个实体类,我有一个值作为薪水。工资的数据类型是bigdecimal。现在我想对这个实体执行一个查询,其中有两个值,从salary和toSalary。我希望所有的员工都有薪水 薪水以Bigdecaml表示,fromSalary和toSalary以Double表示。 我尝试了2种方法。 标准在哪里(薪水)。gte(新的BigDecimal(fromSalary))。lte(新的大十进制(toSa