从文件读取后将字符串从 00:00 格式转换为双精度 00.00 格式.txt?

Converting a String from 00:00 format to a double 00.00 format after reading from .txt file?

提问人: 提问时间:5/16/2019 更新时间:5/16/2019 访问量:486

问:

我有一个文本文件,其中包含 00:00 格式的数字条目。我知道如何从文件中读取这个字符串。我不知道如何解析它,以便小数点的左侧知道与右侧连接为一个数字。

如果我在拆分中进行拆分,当我只想要一个值时,内部拆分会给我两个值。


File database = new File (FILE);        
Scanner read = new Scanner (database);
String [] dataEntry;
String [] times;
float [] correctTime = null;

    while (read.hasNext ())
    {
        dataEntry = read.nextLine().split(",");  

        times = dataEntry[0].split(":");
        correctTime = new double[times.length];
        //I get stuck here, I know the above line is incorrect              

    }

字符串 解析 java.util.scanner

评论

0赞 Lukas Novicky 5/16/2019
a.)显示代码。你试过了什么?它把你弄到哪里去了 b.)解释你想要什么。这是一个非常模糊的问题。

答:

0赞 siddharthkumar patel 5/16/2019 #1

我假设你得到了一个 00:00 格式的字符串,所以你可以先用 ':' 替换为 '.',然后你会得到一个 00.00 格式的字符串,然后将该字符串解析为双倍,如下所示。

Double.parseDouble(str.replace(':','.'))

这里的“str”是您以 00:00 格式获得的字符串。

0赞 Joop Eggen 5/16/2019 #2

我猜你想在工作时间管理之类的事情上有一个替身。

// 06:30 -> 6.5
// 07:45 -> 7.75
String[] hhmm = dataEntry[0].split(":");
int hh = Integer.parseInt(hhmm[0]);
int mm = Integer.parseInt(hhmm[1]);
double decimalTime = hh + mm / 60.0; // Floating point division because of 60.0

或者,可以使用新的 java 时间 API。