我是 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/