2012-01-05 24 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; 
      } 
     } 
      } 

は、私が分割している文字列です。私は分割された部分が数字かどうかをチェックしたい。私はisDigitを使用することができません。これは文字にのみ使用でき、分割された部分は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

数値が浮動小数点型の場合はどうなりますか? – saviok

0

すべてのトークンが数字かどうか知りたいですか?

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

またはhttp://commons.apache.org/lang/api-release/index.html

StringUtils.isNumeric() 
+0

数値が浮動小数点型の場合はどうなりますか? – saviok

0

Apacheのコモンズlangの使用かわりstring.split()string.toCharArray()メソッドを使用したい場合があり、それはその後、Character.isDigit(char)メソッドを使用して確認することができます文字の配列を生成します。お役に立てれば。

0

一つの方法:

またはtoken.toCharArrayを(使用)と個別の文字をテスト:数字ではないもののためにInteger.parse(トークン)とキャッチはNumberFormatExceptionを使用します。

関連する問題