2012-12-07 4 views
-1

입력 값을 비교하려고합니다. 다음은 내가 말하고자하는 샘플입니다.자바의 입력 값을 비교했습니다

  if(text.input != float) 
      { 
       //code to calculate 
      } 

숫자가 입력되지 않도록하고 싶지 않습니다. 이 올바른지?

+0

정확하지 않은 방법 .. 작동하지 않습니다. –

답변

6

당신은 논리를 구현하는 것 "일을"try/catch 블록을 사용

try { 
    float value = Float.valueOf(text.input); 
    // Do something with value - it's OK. 
} catch (NumberFormatException e) { 
    // text.input is not a float, handle appropriately... 
} 
+0

사용자 정의에 대해 'valueOf'가 작동합니까? .. java에서 작동하지 않습니다. –

+3

_user-define_이 무엇입니까? 'text.input'은 분명히 java.lang.String이어야합니다. –

0

그런 짓을해야하지만, 나는 그것을 할 수있는보다 효율적인 일이 있는지 모르겠어요.

실제로 텍스트 값이 시간의 작은 비율을 제외하고는 모두 float 인 경우 부동 소수점 문자는 예외적 인 상황이므로 try/catch 배열에 동의합니다.

부동 소수점이 입력의 상당 부분 인 경우 예외를 throw하는 대신 올바른 수식을 확인하는 정규식을 사용하는 것이 더 낫다고 말할 수 있습니다.

+0

당신의 진술은 일반적으로 정확합니다 (예외는 _exceptional_ 상황을 처리하기 위해 저장되어야합니다). 그러나 제 경험상,이 예외는 넓은 의미에서 사용됩니다 :). 'Float.valueOf()'는 엔지니어링 표기법과 다른 것들을 구문 분석 할 수 있습니다. –

+0

충분히 공정합니다. OP (및 다른 모든 사람들)는 절충안을 알아야합니다. 정규 표현식은 예외없이 동일하게 수행 될 수 있습니다. http://stackoverflow.com/questions/2293780/how-to-detect-a-floating-point-number-using-a- regular-expression – duffymo

관련 문제