HOWTO · Java

Java で文字列を Long に変換する方法

この記事では、Java で文字列を Long に変換する方法を紹介しています。

このページの内容

このチュートリアルでは、Java で文字列を Long に変換するメソッドについて説明します。

Java で文字列を Long に変換するには、Long.parseLong() を使用する

数値を表す文字列を Long に変換するには、Long クラスの組み込みメソッドを使用することができます。

以下の例はこれを示しています。

public class MyClass {
  public static void main(String args[]) {
    String myString = "24";
    Long myLong = Long.parseLong(myString);
    System.out.println(myLong);
  }
}

この結果は次のようになります。

> 24

しかし、入力された文字列が有効な数値を表していない場合、このメソッドはエラーをスローします。

以下の例は、このことを示しています。

public class MyClass {
  public static void main(String args[]) {
    String myString = "one";
    Long myLong = Long.parseLong(myString);
    System.out.println(myLong);
  }
}

この結果は次のようになります。

> 
Exception in thread "main" java.lang.NumberFormatException: For input string: "one"
	at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.base/java.lang.Long.parseLong(Long.java:692)
	at java.base/java.lang.Long.parseLong(Long.java:817)
	at MyClass.main(MyClass.java:4)

この問題に遭遇しないように、try-catch ブロックを使用することができます。

public class MyClass {
  public static void main(String args[]) {
    String myString = "one";
    Long myLong;
    try {
      myLong = Long.parseLong(myString);
      System.out.println(myLong);

    } catch (Exception e) {
      System.out.println("The input string does not represent a valid number");
    }
  }
}

この結果は次のようになります。

> The input string does not represent a valid number

new Long(str).longValue() は、Java で文字列を long に変換する

数値を表す文字列を入力として受け取り、新しい Long を返す新しい Long オブジェクトを作成することができます。

以下の例はこれを示しています。

public class MyClass {
  public static void main(String args[]) {
    String myString = "1";
    Long myLong;
    try {
      myLong = new Long(myString).longValue();
      System.out.println(myLong);

    } catch (Exception e) {
      System.out.println("The input string does not represent a valid number");
    }
  }
}

この結果は次のようになります。

1

Java で文字列を long に変換するには、Long.valueOf().longValue() を使用する

Long クラスには、数値を表す文字列を Long に変換する別のメソッドも用意されています。

以下の例はこれを示しています。

public class MyClass {
  public static void main(String args[]) {
    String myString = "1";
    Long myLong;
    try {
      myLong = Long.valueOf(myString).longValue();
      System.out.println(myLong);

    } catch (Exception e) {
      System.out.println("The input string does not represent a valid number");
    }
  }
}

議論した 3つのメソッドのうち、どれを使っても有効な文字列を Long に変換することができます。与えられた String が有効な数値であることが確実な場合や、例外を優雅に処理したくない場合は、try-catch ブロックをスキップすることができます。