parseDouble parseInt - 文字列から数値への変換 - 萌えJava超入門
第二十章 ラッパークラスで
文字列を数値に変換する

parseXxxメソッドを使った変換

ラッパークラスの parseXxxメソッドで、文字列を数値へ変換します。


目次

1.parseXxxメソッドを使った変換


数値型のラッパークラスには、
文字列を数値に変換する parseXxxメソッドがあります。
Xxxの部分は、変換するデータ型の名前が入ります。
戻り値はプリミティブ型で得られます。

数値型への変換だけが目的であれば、一番オススメです。

これが使いたかった。
戻り値がプリミティブ型なのがいい。
例えば、Doubleクラスではこのようになっています。
java.lang.Doubleクラスの parseDoubleメソッド
public static double parseDouble(String s)
                 throws NumberFormatException {
   return FloatingDecimal.parseDouble(s);
}
parseDouble はクラスメソッド(static)です。

例外
java.lang.NumberFormatException
数値に変換できない文字列

parseByte メソッド
  byte byt = Byte.parseByte("str");

parseShort メソッド
  short s = Short.parseShort("str");

parseInt メソッド
  int i = Integer.parseInt("str");

parseLong メソッド
  long l = Long.parseLong("str");

parseFloat メソッド
  float f = Float.parseFloat("str");

parseDouble メソッド
  double d = Double.parseDouble("str");

parseBoolean メソッド
  boolean boo = Boolean.parseBoolean("str");

変換したいデータ型の
ラッパークラスを使うんすね。

実際にはこんな感じ。
//Sample20_31.java
class Sample20_31{

    public static void main(String[] args){

      byte byt = Byte.parseByte("64");
      short s = Short.parseShort("1192");
      int i = Integer.parseInt("146000");
      long l = Long.parseLong("1234567890");
      float f = Float.parseFloat("3.14");
      double d = Double.parseDouble("987654320.05");
      boolean boo = Boolean.parseBoolean("true");

      byt += 1;
      s += 830;
      i++;
      l -= 234567890;
      f +=0.00159;
      d += 0.95;

      System.out.println("byt = " + byt);
      System.out.println("s = " + s);
      System.out.println("i = " + i);
      System.out.println("l = " + l);
      System.out.println("f = " + f);
      System.out.println("d = " + d);
      if(boo){
          System.out.println("boo is true!");
      }
    }
}

>
ちゃんと計算
されてる!
コマンドライン
>cd ws
ws>javac Sample20_31.java
ws>java Sample20_31
byt = 65
s = 2022
i = 146001
l = 1000000000
f = 3.14159
d = 9.87654321E8
boo is true!




2.NumberFormatException


>
デデデ出ました
「throws」です!
throws NumberFormatException
public static double parseDouble(String s)
            throws NumberFormatException {
   return FloatingDecimal.parseDouble(s);
}

NumberFormatException は 非チェック例外 なんです。
ホントは throws を省略できるんですが、わかりやすいように記述してくれています。
try-catch しなくてもコンパイルできますが、
必要に応じてキャッチしましょう。

parseDoubleメソッドが
「NumberFormatException」を
スローする事を明示してくれているんだ。


お疲れ様でした。



© 2019 awasekagami