java - 无法让我的程序接受多个整数

标签 java parsing int

好吧,我的程序的目标(此时非常基本)是接受一串单词,例如:(“我给你 34,你给我 50”),我想要的是填充我的数组字符串中每次出现数字。所有这些给我返回的是我给代码的最后一个数字,我检查了整个数组,我所能返回的只是最后一个数字。

public static void main(String[] args) throws IOException {
    BufferedReader read= new BufferedReader(new InputStreamReader(System.in));
    String phrase;
    int count = 0;
    int[] numbers = new int[5];
    phrase = read.readLine();
    for (int i = 0; i < phrase.length()-1; i++){
        if (phrase.substring(i).matches("((-|\\+)?[0-9]+(\\.[0-9]+)?)+")){
            numbers[count] = Integer.parseInt(phrase.substring(i));
            count++;
            System.out.println(numbers[0]);
        }   
    }
}

最佳答案

有些事情需要指出。

  • 我不知道您为什么在输入上使用 substring 方法。

  • 您只打印了数字[0]。无论如何,数组都不好,因为你永远不知道输入将有多少个数字。

  • 当您对十进制数进行分组时,您正在使用 parseInt

  • PatternMatcher 会比 String#matches

    更受推荐
<小时/>

这是更正后的代码

List<Double> numbers = new ArrayList<>();
Pattern p = Pattern.compile("([-+]?[0-9]+(?:\\.[0-9]+)?)");

String phrase = "I give you 30, you give me 50. What about 42.1211?";
Matcher m = p.matcher(phrase);

while (m.find()) {
    numbers.add(Double.parseDouble(m.group()));
}

System.out.println(numbers); // [30.0, 50.0, 42.1211]

关于java - 无法让我的程序接受多个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42259561/

相关文章:

java - 自定义列表重复最后添加的元素

c++ - 将 C++ 方法声明从 .hh 文件移动到 .cc 文件

objective-c - 本地范围内 NSUInteger 的默认值是多少?

java - 运行 JBOSS EAP 7 的多个实例

java - Maven:目标版本无效:12,但 JAVA_HOME 设置为 12

c# - 在导入 SQL Server 之前验证 CSV 文件

excel - 如何在 Azure 逻辑应用中解析 Excel 电子表格

vba - Vba错误处理/仅int

java - 我们如何在Java中添加移位的数组数字‽‽‽

java - Netbeans 警告 pom.xml 中 "http://download.java.net/maven/2"的黑名单存储库声明。如何解决?