Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅从文件输入中读取数字_Java - Fatal编程技术网

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());
    }