2017-02-12 2 views
-2

Ich habe diese Zeichenfolge namens strg "12*2/5-3.0^3.23" Ich möchte jeden Int in dieser Zeichenfolge zu einem Doppel. Ich habe viel versucht und nichts funktioniert. Ich habe versucht, die Zeichenfolge überall dort, wo es ein besonderes Zeichen ist und dann zu prüfen, ob es schon ein Doppel ist oder nicht, indem man etwas wie wenn es ein Doppel ist ich nicht berühren, wenn es kein Doppel war ich tat etwas wie splt[i]=splt[i]+".0";, um es zu einem Doppel zu ändern. Mir geht es bis zu diesem Punkt gut, aber wie ändere ich es zurück in eine Schnur und nicht in eine aufgeteilte Schnur.Wie man einen String in Doppel

Antwort

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

Dies ist nicht hilfreich. Was macht das? Wie beantwortet das die Frage? –

+0

Ich möchte auch die Sonderzeichen enthalten wie die +, -, *, ^. –