常见输入形式 + 对应代码模板
| 输入形式 | 示例 | Java 输入方式 |
|---|---|---|
| 单个整数 | 10 |
|
| 单个浮点数 | 10.0 | double n = sc.nextDouble(); |
| 一行多个整数 | 1 2 3 4 | while (sc.hasNextInt()) list.add(sc.nextInt()); 或 for (int i = 0; i < n; i++) arr[i] = sc.nextInt(); |
| 多行输入(每行一个整数) | 1\n2\n3 | for (int i = 0; i < n; i++) arr[i] = sc.nextInt(); |
| 一行字符串 | hello world | String s = sc.nextLine(); |
| 字符串数组(逐行) | 多行字符串 | for (int i = 0; i < n; i++) strs[i] = sc.nextLine(); |
| 矩阵输入(n 行,每行 m 个数) | 多行 a1 a2 a3 ... | matrix[i][j] = sc.nextInt(); 双重循环 |
标准输出方式
| 输出类型 | 示例代码 |
|---|---|
| 输出一个整数 | System.out.println(123); |
| 输出不换行 | System.out.print("abc"); |
| 格式化输出 | System.out.printf("结果是:%d\n", num); |
| 输出数组 | System.out.println(Arrays.toString(arr)); |
常见问题与解决方案
输入乱码问题
- 原因:编码格式不一致。
- 解决:设置正确的字符编码(如 UTF-8)。
Scanner 换行问题
-
原因:
nextLine()在某些情况下会读取到空行。 -
解决:在使用
nextLine()前调用sc.nextLine()清空缓冲区。
性能优化
-
使用
BufferedReader替代Scanner处理大量数据
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
1465

被折叠的 条评论
为什么被折叠?



