2014-03-28 24 views
1

我有保存時間的字符串。例如,根據數字位數拆分給定的時間

String time =「11235678」;

上述時間在HH MM SS MS(小時,分鐘,秒,毫秒)。

不能保證幾秒鐘和幾毫秒都會收到,但如果我收到它,我必須相應地分割。

現在我知道我們可以使用長度拆分字符串,但我想知道是否有更好的方法來做到這一點?

Cheeers !!!

+2

基於長度決定*格式輸入*並使用'SimpleDateFormat'來解析和**驗證**輸入 –

+0

是的,這就是我已經做的。但我正在尋找更好的方法來做:) –

+0

建議的方式有什麼問題? –

回答

2

這將2個位數

String[] a = s.split("(?<=\\G.{2})"); 
+0

你能解釋一下這是如何工作的嗎?榮譽爲答案btw :) –

+0

我簡化了expr一點,它也使得它更容易解釋:匹配器前進,直到它看到2個字符後面,並進行拆分,\\ G(最後一場比賽)使匹配後的字符繼續 –

0

拆分輸入你可以嘗試這樣的事情:

public Date splitTimeByLength(String time) throws ParseException{ 
    String splitPattern = time.length() > 4 ? "hhmmssSS" : "hhmm"; 
    SimpleDateFormat sdf = new SimpleDateFormat(splitPattern); 
    return sdf.parse(time); 
} 

的更多信息:SimpleDateFormat api