Javaに関する様々な情報をご紹介します。

2文字列から数、数から文字列へのデータ変換

Javaに関する様々な情報をご紹介します。

文字列から数、数から文字列へのデータ変換

このページでは文字列を数データに変換するメソッド、数データを文字列に変換するメソッドの説明を行います。

文字列を数データに変換

文字列を数データに変換し、比較・計算を行いたい場合があります。文字列として数字を受け取り、算術処理したい場合などです。Byte、Short、Integer、Long、Float、Doubleの各クラスにおいて、文字列を数データに変換する以下のメソッドが用意されています。

戻り型 メソッド 説明
static Byte
static Short
static Integer
static Long
static Float
static Double
valueOf(String)
valueOf(String)
valueOf(String)
valueOf(String)
valueOf(String)
valueOf(String)
引数に指定された文字列オブジェクトを該当する数値クラス型に変換して返します。
static byte
static short
static int
static long
static float
static double
parseByte(String)
parseShort(String)
parseInt(String)
parseLong(String)
parseFloat(String)
parseDouble(String)
引数に指定された文字列オブジェクトを該当する基本型に変換して返します。

【例1】コマンドラインから入力された文字列を数データに変換し、入力されたデータの加算を行います。

public class ExNumber3 {
    public static void main(String[] args) {
        int A = Integer.valueOf(args[0]).intValue(); //(1)
        int B = Integer.parseInt(args[1]); //(2)

        System.out.println("答えは" + (A+B) + "です。"); //(3)
    }
}

解説1

  1. (1)コマンドラインから入力された値をargs[0]で受け取り、valueOfメソッドにてIntegerオブジェクトに変換します。変換後、intValueメソッドにてIntegerオブジェクトをint型変数に変換し変数Aに値を代入します。
  2. (2)コマンドラインから入力された値をargs[1]で受け取り、parseIntメソッドにてint型に変換し値を変数Bに代入します。
  3. (3)printlnメソッドにて変数Aと変数Bの加算結果の表示を行います。

実行結果1

D:\JAVA>javac ExNumber3.java

D:\JAVA>java ExNumber3 10 20
答えは30です。

D:\JAVA>

数データを文字列に変換

文字列を数データに変換したいのと逆に、数データを文字列に変換し、処理を行いたい場合もあります。文字列クラスに用意されている便利なメソッドを使用したい場合などです。その際はtoStringメソッドを使用します。toStringメソッドはインスタンスメソッドとクラスメソッドの2種類が用意されています。インスタンスメソッドはNumberクラス以下のすべてのサブクラスで、クラスメソッドはBigInteger、BigDecimalクラスを除くすべてのサブクラス(Byte、Short、Integer、Long、Float、Double)で使用できます。

戻り型 メソッド 説明
String toString( ) 呼び出すオブジェクトを文字列に変換して返します。
static String
static String
static String
static String
static String
static String
toString(byte)
toString(short)
toString(int)
toString(long)
toString(float)
toString(double)
引数に指定された変数型を文字列に変換して返します。

【例2】数データを文字列に変換し、StringクラスのindexOfメソッド、substringメソッドを使用して数データの小数点の数をカウントします。

public class ExNumber4 {
    public static void main(String[] args) {
        double exDouble = 102.682739;
        String exDoubleString = Double.toString(exDouble); //(1)
        int point = exDoubleString.indexOf('.'); //(2)
        int count = exDoubleString.substring(point + 1).length(); //(3)
        System.out.println("少数桁は" + count + "桁です。"); //(4)
    }
}

解説2

  1. (1)クラスメソッドのtoStringを使用し、変数exDoubleに代入された数データを文字列に変換します。
  2. (2)変換された文字列が代入されたexDoubleStringオブジェクトに対し、indexOfメソッドを使用し.(小数点)のインデックス番号を取得します。
  3. (3)substringメソッドを使用し小数点のインデックス番号の次の値から最後までを抜出し、その後lengthメソッドを使用し抜出した値の長さを算出します。
  4. (4)printlnメソッドを使用し、小数点以下の値の長さを表示します。

実行結果2

D:\JAVA>javac ExNumber4.java

D:\JAVA>java ExNumber4
少数桁は6桁です。

D:\JAVA>

2文字列から数、数から文字列へのデータ変換