2017-02-12 1 views
-2

이 문자열은 strg "12*2/5-3.0^3.23"입니다.이 문자열의 모든 int를 double로 변환하려고합니다. 나는 이것을 많이 시도했지만 아무것도 작동하지 않는다. 나는 문자열을 여러 곳으로 나누어서 특별한 문자가 있는지 확인한 다음, 이미 double인지 아닌지 확인하는 것과 같은 일을함으로써 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

또한 +, -, *, ^와 같은 특수 문자가 필요합니다. –

관련 문제