【Java】文字列を数値に変換して計算する
JavaでString型で数値の文字列を持っていたとしても計算はできません。
数値を計算する+の演算子はString型に使用すると文字列が結合されます。
String str1 ="1"; String str2 ="2"; System.out.println(str1 + str2); // 実行結果 12
String型でもっている数値を計算するには数値に変換してから計算してあげる必要があります。
// 文字列から数値への型変換 // 文字列からintへの型変換 int i = Integer.parseInt(文字列); // 文字列からlongへの型変換 long l = Long.parseLong(文字列); ※補足:数値から文字列への型変換は以下です。 String s = String.valueOf(数値);
String型から数値型に変換後、+の演算子で計算すると正常に計算できます。
String str1 ="1"; String str2 ="2"; int i1 = Integer.parseInt(str1); int i2 = Integer.parseInt(str2); System.out.println(i1 + i2); // 実行結果 3
文字列が数値の文字列かどうか調べる必要があります
なお、文字列から数値に変換するとき、数値でない場合、
「java.lang.NumberFormatException」
のエラーとなります。
String型が数値の文字列以外の場合は、エラーとなるため文字列が数値かどうか調べてから処理を行うなど場合によって実装する必要があります。
以下の例では、Characterクラスの isDigit()メソッドを allMatch() にメソッド参照として渡し、数値かどうかチェックします。
String str1 ="1"; String str2 ="a"; boolean chk1 = str1.chars().allMatch(Character::isDigit); boolean chk2 = str2.chars().allMatch(Character::isDigit); System.out.println(chk1); System.out.println(chk2); // 実行結果 true false
コメントを残す