2012-01-05 4 views
1
String[] tokens = s.split(' '); 
    for(int i = 0; i < (tokens.length) - 1; ++i) 
    { 
      if(isDigit(tokens[i])) 
     { 
      // Two numbers cannot be together without an operator. 
      if(isDigit(tokens[i + 1])) 
      { 
       check = 1; 
       break; 
      } 
      if((tokens[i + 1] == '(')) 
      { 
       check = 1; 
       break; 
      } 
     } 
      } 

s는 내가 분할하는 문자열입니다. 분할 후 각 분할 부분이 숫자인지 확인하고 싶습니다. 나는 문자에만 사용할 수 있기 때문에 isDigit을 사용할 수 없다. 그리고 여기에서 split 부분은 String이다.문자열을 분리하고 숫자를 찾는 방법은 무엇입니까?

참고 : 저는 계산기 용 프로그램을 작성하고 있습니다. toCharArray()를 사용하면 둘 이상의 숫자가 나뉩니다. 예. 23이 2와 3으로 분리됩니다.

답변

1
int isDigit = false; 
try 
{ 
    Integer.parseInt(tokens[i]) 
    isDigit = true; 
} 
catch(NumberFormatException e) 
{ 

} 
+0

숫자가 부동 소수점 유형 인 경우 / – saviok

0

숫자가 정수 (다른 유형과 동일) 인 경우 Integer.parseInt(...)을 사용할 수 있습니다. 내가 믿을 수없는 숫자에 NumberFormatException을 던졌습니다.

0
try{  

if(isDigit(Integer.parseInt(tokens[i])) 
{ 
    //Will come here if it is an integer 
} 
} catch(NumberFormatException nfe) { 

    //Will come here if it is not an integer 

} 
+0

숫자가 float 유형인 경우 ?? – saviok

0

모든 토큰이 숫자인지 알고 싶습니까? 대신 string.split()string.toCharArray() 방법을 사용할 수 있습니다

try{ 
    Integer.parseInt(token) 
    return true; 
} catch (numberFormatException){ 
    return false; 
} 

또는 사용 아파치 평민 랭 http://commons.apache.org/lang/api-release/index.html

StringUtils.isNumeric() 
+0

숫자가 부동 소수점 형이면 무엇입니까 ?? – saviok

0

, 그것은 다음 Character.isDigit(char) 방법을 사용하여 확인할 수 있습니다 문자의 배열을 생성합니다. 희망이 도움이됩니다.

0

한 가지 방법 :

또는 token.toCharArray()를 사용하고 개별적으로 문자를 테스트 :하지 수있는 것들에 대한 Integer.parse (토큰) 및 캐치는 NumberFormatException를 사용합니다.

관련 문제