2013-11-25 71 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