2013-11-25 218 views
5

簡單的問題,但我有麻煩。我有一個字符串輸入,其格式爲12:43。 (MM:SS)。
我想將此字符串轉換爲int(秒)。我不知道該怎麼做的唯一部分是如何得到1243而沒有得到invalid double error。因爲它在字符串中包含":",所以我不能做通常的Parse.parseInt(string);包含字符的字符串爲int

回答

9
  • split字符串根據:
  • 對於所得到的陣列中的每個int,申請parseInt
+0

我明白你的意思了,但我根本不知道正則表達式。你能提供一個例子嗎? –

+3

在這個特定的例子中,不需要特殊的正則表達式。你可以簡單地做'String [] arr = myStr.split(「:」);' – Maroun

+0

太棒了。所以'String [0]'是分鐘,那麼'String [1]'是秒? –

5

可以做

String s = "12:43"; 
int secs = (s.charAt(0)-'0')*600 + (s.charAt(1) - '0') * 60 
      + (s.charAt(3)-'0')*10 + s.charAt(4)-'0'; 

int secs = s.charAt(0)*600+s.charAt(1)*60+s.charAt(3)*10+s.charAt(4)-'0'*671; 
+1

+1:我嘲笑'-'0'* 671'。這可能是解析速度最快的方法。 –

+0

不確定。將'0'* 671'優化成一個常量嗎? –

+0

@DavidWallace我肯定會這樣認爲 – Cruncher