gpt4 book ai didi

java - 在 Java 中使用 Scanner 忽略字符

转载 作者:行者123 更新时间:2023-11-29 04:27:26 25 4
gpt4 key购买 nike

我想从标准输入中获取多个坐标点,例如 (35,-21) (55,12)... 并将它们放入相应的数组中。

我们称它们为 x[] 和 y[]。

x[] 将包含 {35, 55, ...} 而 y[] 将包含 {-21, 12, ...} 等等。

但是,我似乎找不到绕过括号和逗号的方法。

在 c 中我使用了以下内容:

for(i = 0; i < SIZE; i++) {
scanf("%*c%d%*c%d%*c%*c",&x[i],&y[i]);
}

但是在 Java 中我似乎找不到绕过非数字字符的方法。

我目前在 Java 中有以下内容,因为我被卡住了。

double[] x = new double[SIZE];
double[] y = new double[SIZE];
Scanner sc = new Scanner(System.in);

for(int i=0; i < SIZE; i++) {
x[i] = sc.nextDouble();
}

那么问题来了:从扫描仪读取 double 时如何忽略字符?

快速编辑:

我的目标是在用户输入时保持严格的语法 (12,-55),并且能够输入多行坐标点,例如:

(1,1)(2,2)(3,3)...

最佳答案

nextDouble() 尝试从输入中获取 double 。它只是意味着解析输入流并通过自身计算如何解释该字符串以某种方式提取数字。

从这个意义上说:单靠扫描仪在这里是行不通的。您可以考虑使用 tokenizer - 或者你使用 scanner.next() 来返回完整的字符串;然后进行手动拆分/解析,或者转向 regular expressions这样做。

关于java - 在 Java 中使用 Scanner 忽略字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45563067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com