2013-11-25 43 views
5

簡単な質問ですが問題があります。私はこの形式の文字列入力を持っています12:43。 (MM:SS)。
この文字列をint(秒)に変換しようとしています。私が行う方法が分からない唯一の部分は、1243を取得する方法です。invalid double errorを取得することはありません。文字列に":"が含まれているため、通常はParse.parseInt(string);を実行できません。 :結果の配列内の各intに対して 文字を含む文字列を含む文字列

  • に応じ

  • 答えて

    9
    • split文字列、あなたが行うことができます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

    関連する問題