2013-10-20 1 views
0

피곤할 수도 있습니다. 하지만 내가 뭘했는지에 상관없이 코드는 항상 실행됩니다. 문자열에 문자가 포함되어있는 경우에만 아래 코드를 실행하면 어떻게됩니까? 당신이 좋아하는 뭔가를 시도하는 것이 좋습니다JOptionPane.showInputDialog 문제

String input = JOptionPane.showInputDialog(this, "Enter your budget!", "Set Budget", 1); 

    //If the input isnt empty 
    System.out.println(input); 
    if(!"".equals(input) || input != null){ 
     try{ 
      budgetValue = Double.parseDouble(input); 
      budgetIn.setText(String.format("$%1$,.2f", budgetValue)); 
       setDifference(); 
     } 
     catch(Exception ex){ 
      JOptionPane.showMessageDialog(this, "Unable to set budget!\n" + 
               "Please enter a usable value!", "Sorry!", 0); 
     } 
    } 
+3

if 조건문에서 OR (||) 대신 AND (&&) 연산자를 사용해야합니다. – ntalbs

+0

또한 : 그 system.out.println() 나를 위해 문자열 null 실제로 볼 수 있습니다 –

+0

오 남자. 고마워 .. 잠시 동안 자바 프로그래밍을 해왔고 결코 그 문제에 부딪치지 않았다. .. 왜 설명해 줄 수 있니? –

답변

1

...

if(input != null && !input.trim().isEmpty()){...} 

이 내용이

그래도 조심 비어 있지 않은 것처럼 if 문이 너무 오래 실행되고 있는지 확인해야합니다,이 잘려서 input 공백이므로 공백을 입력하고 을 입력하면을 입력하면 if 문을 건너 뜁니다.)

if (input != null && input.matches("^\\d+(\\.(\\d+)?)?$")) {...} 

이것은 if 문이 있는지 확인해야합니다 ... 당신이 String#match와 정규 표현식을 사용할 수 있습니다, 그것은 단지 유효한 숫자 값을 포함 보장하기 위해 inputString를 필터링하려면

업데이트 숫자 값을 입력 할 때만 실행됩니다. 소수 자릿수 (소수)는 선택 사항입니다.

+0

감사합니다. 그럼에도 불구하고 사용자가 double이 아닌 다른 것을 입력하면 예외가 발생합니다. –

+0

사용자가 * "문자열에 문자가 포함되어 있으면"입력 한 경우'if' 문을 실행하기를 원한다고 생각했습니다. "*;) – MadProgrammer

관련 문제