提问人: 提问时间:5/16/2019 更新时间:5/16/2019 访问量:486
从文件读取后将字符串从 00:00 格式转换为双精度 00.00 格式.txt?
Converting a String from 00:00 format to a double 00.00 format after reading from .txt file?
问:
我有一个文本文件,其中包含 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
}
答:
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。
评论