[英]StringTokenizer for split space
我有字符串遵循格式:
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
,並且它僅在向后兼容的情況下仍然存在。
嘗試這樣的事情:
String[] data = inputLine.split("\\s+");
現在,結果數組中的每個位置將保存一條數據,您可以繼續將其轉換為適當的數據類型。 特別是,對於日期(由實際日期和時間組成),請執行以下操作:
Date date = df.parse(data[0] + " " + data[1]);
上面的優點是您可以省去在令牌生成器中獲取下一個令牌的麻煩,並且從一開始就知道要讀取多少個元素(數組的長度)。
采用:
Date date = df.parse( st.nextToken() + " " + st.nextToken() );
將兩個“單詞”都傳遞給SimpleDateFormat對象。
使用一個參數構造函數(要標記化的字符串)創建一個StringTokenizer
。 此構造函數假定任何空格都是不同標記之間的分隔符。 日期表示形式在中間有空格。 因此, StringTokenizer
將日期減少一半,而將另一個留給第二個令牌。
當您以后使用空格來分隔其他字段時,直接的解決方案就是讀取兩個標記並重建組合的字段:
Date date = df.parse( st.nextToken()+" "+ st.nextToken());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.