我需要将文件的一部分分割为双精度,因为其值稍后将成为图形的一部分。
这是文件的一部分:
3000,1273010256, 2010/5/4,344,78.32,3.95
4000,1273010257, 2010/5/4,326,78.32,3.97
答案 0 :(得分:1)
奇怪的是,您希望将所有这些值解析为双精度,但是无论如何。
由于您要拆分的值是格式为yyyy/M/d HH:mm:ss
的日期时间
,因此可以将其转换为LocalDateTime
对象,然后提取每个值:
String datetime = "2010/5/4 21:57:34";
LocalDateTime date = LocalDateTime.parse(datetime, DateTimeFormatter.ofPattern("yyyy/M/d HH:mm:ss"));
double YYYY = date.getYear();
double M = date.getMonthValue();
double d = date.getDayOfMonth();
double HH = date.getHour();
double mm = date.getMinute();
double ss = date.getSecond();
另一种解决方案是将一次拆分以获取日期部分和小时部分
然后分别分割每个部分:
String datetime = "2010/5/4 21:57:34";
String[] tokens = datetime.split(" ");
String[] datepart = tokens[0].split("/");
String[] hourpart = tokens[1].split(":");
double YYYY = Double.parseDouble(datepart[0]);
double M = Double.parseDouble(datepart[1]);
double d = Double.parseDouble(datepart[2]);
double HH = Double.parseDouble(hourpart[0]);
double mm = Double.parseDouble(hourpart[1]);
double ss = Double.parseDouble(hourpart[2]);
答案 1 :(得分:0)
在最初的问题中,我看不到任何提及日期的信息,因此我只是将每一行看成一个单独的值列表。
Company new
0 a 47.0
1 b 50.0
2 c -9.0
输出为:
String in="3000,1273010256, 2010/5/4,344,78.32,3.95";
String[] fields=in.split(",");
double d1=Double.parseDouble(fields[4]);
double d2=Double.parseDouble(fields[5]);
System.out.println("d1="+d1);
System.out.println("d2="+d2);