2011-01-12 10 views
6

私のプログラムが実行時に取得する2つの文字列オブジェクト、 "25000.00"と "1234"があるとします。 キャスタブル doubleとintにそれぞれ変換できるかどうかを確認するにはどうすればよいですか?すでにJavaにメソッドやキーワードがありますか?オブジェクトが別のタイプに変換可能かどうかをチェックする方法は?

+1

キャストについては、次のチュートリアルを参照してください。http://download.oracle.com/javase/tutorial/java/IandI/subclasses.html – BalusC

+0

説明のために、BalusC。 –

答えて

8

これを行うには、Integer.parseIntまたはDouble.parseDouble静的メソッドを使用できます。これらのメソッドのそれぞれは、Stringを取り、intまたはdoubleに適宜変換します。この関数を呼び出すことによって、文字列が変換可能かどうかを確認することができます。変換が可能な場合は変換が実行されます。それ以外の場合、メソッドはNumberFormatExceptionをスローします。これを捕捉して応答できます。例:

try { 
    int value = Integer.parseInt(myString); 
    // Yes! An integer. 
} catch (NumberFormatException nfe) { 
    // Not an integer 
} 

これが役に立ちます。

3

Stringであり、はキャスト可能またはIntegerです。

の文字列は、Double.parseDoubleInteger.parseIntのメソッドを使用して数値として解析できます。解析できない場合はNumberFormatExceptionがスローされます。あなたはそれを捕らえて適切に扱うことができます。

キャストおよび構文解析は全く異なるものです。

編集:@BalusCが質問を編集し、「キャスト」を「変換」に変更しました。私のコメントは今や冗長であると思います:)

+0

説明をありがとう。私はいつもキャスティングと解析は同じことだと思った。 –

+0

間違いなく。しかしどちらも変換の形式です。 – BalusC

0

C#では、オブジェクトが他のオブジェクトにキャストできるかどうかをチェックする方法があります。しかし、Integer.parseIntまたはDouble.parseDoubleで十分です。

関連する問題