java - 用于分割空间的 StringTokenizer

标签 java android jfreechart simpledateformat stringtokenizer

我的字符串格式如下:

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() 方法,出于所有实际目的,StringTokenizerdeprecated它仍然存在只是为了向后兼容。

尝试这样的事情:

String[] data = inputLine.split("\\s+");

现在结果数组中的每个位置都将保存一段数据,您可以继续将其转换为适当的数据类型。特别是,对于日期(由实际日期和时间组成)做这样的事情:

Date date = df.parse(data[0] + " " + data[1]);

上述的优点是您可以忘记在分词器中获取下一个标记,并且从一开始您就会知道读取了多少元素(数组的长度)。

关于java - 用于分割空间的 StringTokenizer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13400748/

相关文章:

java - 图表,服务器端还是客户端?

java - 将java对象序列化为文本文件

java - 二叉搜索树的迭代器不沿着树向下

java - 重复的 dex 但没有重复的 .jar

java - 如何在没有 Android Studio/XML 的情况下包含原始文件?

java - 如何在 JFreeChart 可见后更新它的外观?

java - 访问 CDI SessionScoped bean 在 Java 8 并行流中不起作用

java - 正确输入下一个 Activity 的文本

Android HTTP 发布到不带参数的 URL

java - Jfreechart Boxplot DefaultBoxAndWhiskerCategoryDataset 初始化