如何拆分成双打?

时间:2019-01-09 12:07:05

标签: java split

我需要将文件的一部分分割为双精度,因为其值稍后将成为图形的一部分。

这是文件的一部分:

3000,1273010256, 2010/5/4,344,78.32,3.95
4000,1273010257, 2010/5/4,326,78.32,3.97

2 个答案:

答案 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);