2017-02-12 5 views
-2

私はこの文字列をstrg "12*2/5-3.0^3.23"といいます。この文字列のすべてのintをdoubleに変換したいと思います。私はこれをたくさん試しましたが、何も動いていません。 私は文字列を分割して特殊文字があるかどうか試してみましたが、それが既にdoubleかどうかを確認するのはif(splt[i].contains(".")){isDouble == true;}です。もしdoubleなら私はそれに触れません。 splt[i]=splt[i]+".0";のようなものをダブルに変更します。私はこの時点までうまくいくんだけど、どうやって分割文字列ではなく文字列に戻すのか。文字列をdoubleにするには

答えて

0
final class Playground { 
    private static List<Double> extract(final String input) { 
    final List<Double> results = new LinkedList<>(); 
    StringBuilder builder = new StringBuilder(1); 
    for (final char character : input.toCharArray()) { 
     if (Character.isDigit(character) || (Character.compare(character, '.') == 0)) { 
     builder.append(character); 
     } else { 
     results.add(Double.valueOf(builder.toString())); 
     builder = new StringBuilder(1); 
     } 
    } 
    if (builder.length() > 0) { 
     results.add(Double.valueOf(builder.toString())); 
    } 
    return results; 
    } 

    public static void main(final String... args) { 
    System.out.printf("[numbers] %s", Playground.extract("12*2/5-3.0^3.23")) 
    } 
} 
+0

これは役に立ちません。これは何をするのですか?これはどのように質問に答えますか? –

+0

また、+、 - 、*、^などの特殊文字が必要です。 –

関連する問題