java - 如何从输入文件中提取十进制数?

标签 java

我是 Java 新手,目前正忙于一些学校作业。 我的程序正在从输入文件中读取行。 如果我的输入文件有一行像

“奥维尔英亩,114.8 43801”

我必须将文本、 double 、整数分成单独的部分。 我已经完成了名称部分,但卡在了数字部分。

我如何提取 114.8,然后提取 43801? 我一次需要一个数字。 最后我需要将 114.8 除以 43801。然后到下一行。

 Scanner fileInput = new Scanner(inFile);
 fileInput.useDelimiter( "\\D+" );
 double i=0;
 while ( fileInput.hasNextDouble() ){
 i=fileInput.nextDouble(); // get int
 System.out.println(i);
 }

我试过了,但它打印出来了 114.0 8.0 43801.0

如您所见,十进制数不正确,我一次只需要一个数字。

最佳答案

考虑输入“114.8 43801”,您可能希望使用空格作为分隔符。通过使用 '\D+' 作为分隔符,您可以按照 Java 文档在任何非数字处分割字符串: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

因此,您将在“114.8”点处 split 。

尝试使用默认的空白分隔符(不要设置一个..),它应该可以工作。

关于java - 如何从输入文件中提取十进制数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35803647/

相关文章:

java - 如何编写测试代码来测试我的异常处理代码?

JAVA:无法运行 jar 文件

java - 如何使用我在 html 页面中创建的枚举类

Java在文本中查找字符串不起作用

java - java中(char)temp和Character.toChars(temp)和String.valueOf(Character.toChars(temp))有什么区别

java - 为什么我的模型没有在 LWJGL 中使用着色器和 VBO 渲染任何内容

java - Java 9 模块如何解决与传递依赖相关的问题?

java - 这个 Java for 循环在伪代码中应该是什么样子?

java - 如何在 Spring MVC 2.5 应用程序中更改 HTTP OPTIONS 请求的响应?

java - Flink 流式传输 - 使用 StreamingFileSink 时更改部分文件名?