java - Java - 将用户输入转换为二维整数数组
问题描述
如何转换用户输入(第一个输入是大小):
4
1 2
3
3
-1
相当于:
int graph[][] = {{1,2},{3},{3},{}};
我的尝试是:
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int graph2[][] = {{1,2},{3},{3},{}};
int graph[][] = new int[n][n];
for (int i = 0; i < n; i++) {
int counter = 0;
char[] arr = sc.nextLine().toCharArray();
for (char c : arr){
graph[i][counter++] = (int)c-48;
}
}
System.out.println(Arrays.deepToString(graph2));
System.out.println(Arrays.deepToString(graph));
但是,我必须输入没有空格:
4
12
3
3
输出是:
Need it in : [[1, 2], [3], [3], []]
Crrent Output : [[0, 0, 0, 0], [1, 2, 0, 0], [3, 0, 0, 0], [3, 0, 0, 0]]
解决方案
一些简单的代码:
import java.util.Arrays;
import java.util.Scanner;
public class Array2D {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int size = in.nextInt();
//consume the extra line
in.nextLine();
int[][] array = new int[size][];
for(int i = 0 ;i <size; i++) {
String line = in.nextLine();
array[i] = toIntArray(line.split(" "));
}
}
public static int[] toIntArray(String[] arr){
int intArray[] = new int[arr.length];
for(int i=0;i<arr.length;i++) {
intArray[i] = Integer.parseInt(arr[i]);
}
return intArray;
}
}
推荐阅读
- scala - 给定Scala中的特定条件,如何组合两个数据框中的行?
- postgresql - 对 WITH 变量执行选择查询
- python - BeautifulSoup html.parser 不显示所有源代码
- django - django post api 通过邮递员
- nativescript - Nativescript Vue:将小屏设计与大屏相匹配?
- python - Python - 遍历用户输入的数字,计算并输出输入的值
- applescript - 与提供的用户一起挂载 smb 共享时,AppleScript 无法正常工作
- swiftui - 如何定义一个接受任意数据元素并产生“一些”视图的闭包?
- python - 为什么没有检索到具有多对多关系的列名?SQL炼金术
- javascript - 如何让 web MIDI 输出控制器工作?