2017-02-12 22 views
-2

我有這個字符串稱爲strg "12*2/5-3.0^3.23"我想將此字符串中的每個int變成雙精度型。我已經嘗試了很多,沒有任何工作。 我試圖分裂字符串到處都有一個特殊的字符,然後檢查它是否已經是一個雙或不做,如if(splt[i].contains(".")){isDouble == true;}如果它是一個雙我不接觸它,如果它不是一個雙我做了像splt[i]=splt[i]+".0";將其更改爲雙倍。我很好,直到這一點,但我如何將它改回到一個字符串,而不是一個拆分字符串。如何將字符串變爲雙重字符

回答

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

我也想要包含特殊字符,如+, - ,*,^。 –