【问题标题】:extracting specific set of number from a string in Java [closed]从Java中的字符串中提取特定的数字集[关闭]
【发布时间】:2014-02-03 00:33:28
【问题描述】:

我正在寻找一种简单的方法来从 Java 中的字符串中提取一组数字。

例如:

String temp = "120.6 + 220.4";

我想从字符串中提取“220.4”并将其赋值给一个双变量。谁能帮我一个简单的解决方案?

【问题讨论】:

  • 以下是从字符串中提取“220.4”的方法:public double get220point4(String s) {return 220.4;}。你能更具体地谈谈你的问题吗?其他不是“120.6 + 220.4”的字符串会发生什么?
  • 为什么是 220.4 而不是 120.6?请更具体
  • 字符串的格式是什么。是否总是将 2 个数字加在一起?模式至关重要,而您的问题缺少这些重要的细节。请假设我们不知道您要执行的操作的详细信息。
  • 第二个数字可以是任何数字。我只是想显示字符串的格式。但我找到了解决方案。 String.split(" ") 方法为我完成了这项工作。谢谢大家的回答!

标签: java


【解决方案1】:

您可以使用ScannerStringReader 执行类似的操作

String temp = "120.6 + 220.4";
java.io.StringReader sr = new java.io.StringReader(temp);
java.util.Scanner scanner = new java.util.Scanner(sr);
double d = -1;
while (scanner.hasNext()) {
  if (scanner.hasNextDouble()) {
    d = scanner.nextDouble();
    System.out.println(d);
  } else {
    scanner.next();
  }
}

输出

120.6
220.4

d 的值将是220.4(根据要求)。

【讨论】:

    【解决方案2】:

    要可靠地提取所有数字,请使用正则表达式。请参阅此答案,例如:How to extract numbers from a string and get an array of ints?Extract number from string using regex in java 等。

    【讨论】:

      【解决方案3】:

      查看正则表达式。但是,您的问题的解决方案非常简单:

      String temp = "120.6 + 220.4";
      
      String s = temp.split("\\+")[1]; // split by "+" and then take the second element
      
      double d = Double.parseDouble(s.trim()); // parse the trimmed string to double
      
      System.out.print(d);
      

      输出:

      220.4
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-05-25
        • 2020-06-02
        • 1970-01-01
        • 1970-01-01
        • 2018-08-07
        • 1970-01-01
        • 2015-10-04
        相关资源
        最近更新 更多