Java如何从具有多个字符串和 double 值的文本文件中读取一行?

标签 java input

我想创建一个程序,从包含三个不同部分的文本文件中读取内容,然后输出名称。例如。文本文件:

vanilla   12   24
chocolate   23  20
chocolate chip  12   12

但是,第三行有一点问题,因为有一个空格。到目前为止,我的代码适用于前两行,但随后在第三行上抛出 InputMismatchException。我该如何制作它,以便它从一行读取两个单词,然后输出它?我的相关代码:

    while (in.hasNext())
{
    iceCreamFlavor = in.next();
    iceCreamRadius = in.nextDouble();
    iceCreamHeight = in.nextDouble();

out.println("Ice Cream: " + iceCreamFlavor);
}

最佳答案

在您的输入文件中,字段之间的分隔符由多个空格组成,不是吗? 如果是,您可以简单地使用 String 对象的 split 方法。

您读了一行。 您将其拆分以获得一个字符串数组。

String[] splitString = myString.split("   ");

第一个元素“0”是字符串,其他两个可以解析为 double

这可能看起来像:

    try (BufferedReader br = new BufferedReader(new FileReader("path/to/the/file.txt"))) {
        String line;
        while ((line = br.readLine()) != null) {
            String[] lineSplitted = line.split("   ");
            String label = lineSplitted[0];
            double d1 = Double.parseDouble(lineSplitted[1]);
            double d2 = Double.parseDouble(lineSplitted[2]);
        }

    } catch (IOException e) {
        e.printStackTrace();
    }

关于Java如何从具有多个字符串和 double 值的文本文件中读取一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52911402/

相关文章:

文件上传验证

java - 在 Java 的 SoapUI 5.0.0 中正确地将断言添加到 WsdlTestRequestStep

java - 如何将一批.jpeg文件转换为.gif动画?

java - API 网关 (spring-cloud-starter-gateway) 中的 Swagger API 文档不起作用(Whitelabel 错误页面)

javascript - 如何检查输入 .indexOf 是否有多个字符?

html - 样式输入类型文件?

java - 我的 @ Produced EntityManager 在 servlet 容器中线程安全吗?

java - 改进 Comparable<T> compareTo 性能

html - 使用 CSS 更改输入字段的外观会导致高度/宽度失真

c++ - 字符串输入大于 1000 个字符时执行挂起