2017-02-12 25 views
-2

У меня есть эта строка с именем strg "12*2/5-3.0^3.23" Я хочу превратить каждый int в эту строку в двойную. Я много пробовал, и ничего не работает. Я пробовал разделить строку везде, где есть специальный символ, а затем проверить, если он уже двойной или нет, делая что-то вроде if(splt[i].contains(".")){isDouble == true;}, если это двойник, я не трогаю его, если это не двойной я сделал что-то вроде 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

Я также хочу включить специальные символы, такие как +, -, *, ^. –

 Смежные вопросы

  • Нет связанных вопросов^_^