-4

我只是想知道是否有人可以向我展示一些关于如何将此字符串放入 2D 布尔数组并打印出来的代码

示例:“0-1 0-2 1-2 1-3 2-3”,但字符串可能更复杂,例如“0-1 1-2 2-3 3-0 0-4 0-11 1- 5 1-6 2-7 2-8 3-9 3-10 4-5 6-7 8-9 10-11 4-7 4-8 5-9 5-10 6-9 6-10 7-11 8 -11"

一个例子是 0-1 为真,0-2 为真,1-2​​ 为真,1-3 为真,2-3 为真,所有其他位置都应为假

4

1 回答 1

1

我不知道你把它们放在二维boolean数组中是什么意思。如果您在解析文本时遇到问题,那么这里有一些您可以使用的代码片段。

对于第一个解决方案,我假设数字总是成对出现并由单个 分隔-,并且空格用于分隔数字对。

如果您从标准输入读取,请使用此选项:

Scanner scanner = new Scanner(System.in);

如果您有一个String包含所有数字并且想要处理它(让变量的名称为inputString),请使用它:

Scanner scanner = new Scanner(inputString);

然后您可以从输入中读取数字:

while (scanner.hasNext()) {
    String pair = scanner.next();
    // Split by the hyphen
    String tokens[] = pair.split("-");

    // Normally, one should check the array before accessing it
    // I currently assume the input is valid
    int first = Integer.parseInt(tokens[0]);
    int second = Integer.parseInt(tokens[1]);

    // Do whatever you want with the 2 numbers extracted
}

或者,您也可以使用useDelimiter作为分隔符添加-和使用nextInt读取数字,而无需-单独处理:

scanner.useDelimiter("[\\p{javaWhitespace}-]+");

代码将简单地变为:

scanner.useDelimiter("[\\p{javaWhitespace}-]+");

while (scanner.hasNext()) {
    int first = scanner.nextInt();
    int second = scanner.nextInt();

    // Do whatever you want with the 2 numbers extracted
}

代码更简洁,但是否-出现在firstand之间second,或者出现了多少-,或者是不是这对数字之间的唯一字符,现在还不得而知。如果我们假设输入格式是正确的就可以了。但是,如果没有给出该假设,我们将无法进行任何输入验证。

于 2012-12-05T02:06:14.757 回答