Java 仅从文件输入中读取数字
在阅读一个简单的文件时,我试图只从中获取数字Java 仅从文件输入中读取数字,java,Java,在阅读一个简单的文件时,我试图只从中获取数字 Hi 80 Bye 90 Cool 100 使用标签空间的扫描器定界符可以帮助我忽略数字前的空格,但当我试图抓取数字本身时,它会抓取类似80Bye的内容。这有什么解决办法吗 编辑: 当我试着接受数字80时,拜拜紧跟其后。我也尝试过使用“\n”分隔符,但也不起作用。当我使用“\n”时,它表示当我试图解析它时,“100”变成int时出错。如果抛出异常,您可以捕获它 try { holdAvg += Integer.parseInt(num);
Hi 80
Bye 90
Cool 100
使用标签空间的扫描器定界符可以帮助我忽略数字前的空格,但当我试图抓取数字本身时,它会抓取类似80Bye的内容。这有什么解决办法吗
编辑:
当我试着接受数字80时,拜拜紧跟其后。我也尝试过使用“\n”分隔符,但也不起作用。当我使用“\n”时,它表示当我试图解析它时,“100”变成int时出错。如果抛出异常,您可以捕获它
try {
holdAvg += Integer.parseInt(num);
} catch(NumberFormatException e) {
// silently catch exception
}
在这里,弄乱分隔符可能对你没有帮助。扫描仪默认使用任何空白作为分隔符,这应该是您想要的。无需设置明确的分隔符,默认值(空白)可以:
Scanner scan = new Scanner(new File("score.txt"));
while( scan.hasNext() )
{
System.out.println("Word: " + scan.next());
System.out.println("Number: " + scan.nextInt());
}
try-catch块有助于确保程序在收到意外输入时不会崩溃。
Integer.parseInt(..)
抛出一个NumberFormatException
和scan.nextInt()
抛出一个输入不匹配异常
查看扫描仪上的javadoc:您尝试过什么吗?你能出示一些代码吗?逐行阅读文件。在空白处拆分行。您可以使用正则表达式进行此操作。您可以尝试从文件中读取行,将输出拆分为空格。那应该是你80岁了。您也可以按照其他人的建议使用正则表达式。
Scanner scan = new Scanner(new File("score.txt"));
while( scan.hasNext() )
{
System.out.println("Word: " + scan.next());
System.out.println("Number: " + scan.nextInt());
}