我的字符串格式如下:
2012.11.15 22:00:00 1.2971 1.2974 1.2959 1.296
我使用以下代码:
DateFormat df = new SimpleDateFormat("yyyy.MM.dd HH:mm:ss");
String inputLine;
in.readLine();
while ((inputLine = in.readLine()) != null) {
StringTokenizer st = new StringTokenizer(inputLine);
Date date = df.parse( st.nextToken() );
double open = Double.parseDouble( st.nextToken() );
double high = Double.parseDouble( st.nextToken() );
double low = Double.parseDouble( st.nextToken() );
double close = Double.parseDouble( st.nextToken() );
...
但是方法 SimpleDateFormate 只获取日期和用作分隔符的日期/时间之间的空格。
如何与时间约会?
最佳答案
最好在 String
中使用 split()
方法,出于所有实际目的,StringTokenizer
是 deprecated它仍然存在只是为了向后兼容。
尝试这样的事情:
String[] data = inputLine.split("\\s+");
现在结果数组中的每个位置都将保存一段数据,您可以继续将其转换为适当的数据类型。特别是,对于日期(由实际日期和时间组成)做这样的事情:
Date date = df.parse(data[0] + " " + data[1]);
上述的优点是您可以忘记在分词器中获取下一个标记,并且从一开始您就会知道读取了多少元素(数组的长度)。
关于java - 用于分割空间的 StringTokenizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13400748/