【问题标题】:Why the input taken in Strings and then used parseInt?为什么输入 Strings 然后使用 parseInt?
【发布时间】:2023-03-15 12:05:01
【问题描述】:

我必须在二维数组中输入 6x6。在这段代码中,输入是字符串而不是直接输入整数?为什么要使用拆分功能? 第一个 for 循环后的代码我没看懂?

import java.io.*;
import java.math.*;
import java.security.*;
import java.text.*;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.*;

public class Solution {

    private static final Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        int[][] arr = new int[6][6];

        for (int i = 0; i < 6; i++) {
            String[] arrRowItems = scanner.nextLine().split(" ");
            scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");

            for (int j = 0; j < 6; j++) {
                int arrItem = Integer.parseInt(arrRowItems[j]);
                arr[i][j] = arrItem;
            }
        }
        scanner.close();
    }
}

【问题讨论】:

  • 因为:1) 您一次读取 ,2) “行”可能包含 多个 数字。 3) “split()”允许您将数字彼此“分开”,因此您可以单独“parseInt()”。问:有意义吗?

标签: java arrays iteration


【解决方案1】:
  1. 是的,输入直接作为String。

  2. 您的代码假定您将插入 6 行,每行 6 个数字。插入的第一行的示例可能是:

    2 4 6 7 8 9

这个方法splits this string around matches of the given regular expression.

  1. 第一个循环之前的代码意思是:

private static final Scanner 扫描器 = new Scanner(System.in);

A simple text scanner which can parse primitive types and strings using regular expressions.

int[][] arr = new int[6][6];

用 6 个元素声明和实例化的新多维整数数组,每个元素包含 6 个元素。 See more.

如果你不了解java程序的基本结构,我建议你从here开始。

谢谢。

【讨论】:

  • 为什么使用这个? scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
【解决方案2】:

给定解决方案,输入必须是格式(空格分隔)

1 2 3 4 5 6

7 8 9 10 11 12

13 14 15 16 17 18

19 20 21 22 23 24

25 26 27 28 29 30

31 32 33 34 35 36

现在,您需要对输入的每一行进行迭代。因此外部 i 循环。将skipping the junk characters 之后的行作为字符串读取后,您需要分隔数字。这是使用以空格作为分隔符的拆分来完成的。此拆分为您提供 6 个数字作为字符串数组。对于这些字符串中的每一个,使用 parseInt 将它们转换为 int。对所有行执行此操作即可完成。

【讨论】:

    【解决方案3】:

    在几乎像 JAVA 和 Python 这样的编程语言中,默认情况下,输入采用字符串的形式。 C 也有 int main(int argc, char[] argv) 代表一个字符串。因此,您需要对其进行解析并将其转换为整数值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-01
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 2017-08-24
      相关资源
      最近更新 更多