Java Tips | 基本ユーティリティ:Long.parseLong()

Web APP Java
スポンサーリンク
スポンサーリンク

Long.parseLong()とは何か

Javaで業務システムを開発していると、文字列として受け取った数値をlong型へ変換したい場面が頻繁に登場します。

例えば、

  • 会員ID
  • 注文番号
  • 売上金額
  • タイムスタンプ
  • データベースの主キー
  • CSVファイルの取込データ

などです。

そのような場面で利用するのが Long.parseLong() です。

Long.parseLong(文字列)
Java

このメソッドは文字列(String)をlong型へ変換します。

実務では大量データや大きな数値を扱うシステムで非常によく利用されます。

なぜlong型が必要なのか

まずはint型との違いを理解しましょう。

int型が扱える範囲は次の通りです。

-2147483648 ~ 2147483647

約21億までしか扱えません。

しかし業務システムでは、これを超える数値を扱うことがあります。

例えば、

  • 顧客ID
  • 取引ID
  • 売上累計
  • UnixTime
  • ミリ秒単位の日時

などです。

そこで利用されるのがlong型です。

-9223372036854775808
~
9223372036854775807

非常に大きな整数を扱えます。

Long.parseLong()の基本構文

最も基本的な使い方から見てみましょう。

// 数値文字列
String value = "1000";

// longへ変換
long number =
        Long.parseLong(value);

// 結果表示
System.out.println(number);
Java

実行結果

1000

文字列からlong型へ変換されています。

ステップバイステップで理解する

ステップ1:文字列を準備する

// 注文番号
String orderId = "123456789";
Java

現在はString型です。

ステップ2:Long.parseLong()を実行する

// long型へ変換
long id =
        Long.parseLong(orderId);
Java

ステップ3:数値として利用する

// 計算可能
long nextId = id + 1;

// 結果表示
System.out.println(nextId);
Java

実行結果

123456790

数値として扱えるようになりました。

Stringのままだと何が問題なのか

初心者が最初につまずきやすいポイントです。

// 文字列
String value = "100";

// 文字列連結
System.out.println(value + 50);
Java

実行結果

10050

数値計算ではなく文字列連結になっています。

Long.parseLong()を使用すると、

// longへ変換
long value =
        Long.parseLong("100");

// 計算
System.out.println(value + 50);
Java

実行結果

150

正しく計算できます。

どのような文字列が変換できるのか

変換できる例

// OK
Long.parseLong("100");

// OK
Long.parseLong("-500");

// OK
Long.parseLong("0");
Java

整数形式であれば変換可能です。

変換できない例

// NG
Long.parseLong("ABC");
Java

実行結果

NumberFormatException

数値ではないため変換できません。

最重要:NumberFormatExceptionを理解しよう

Long.parseLong()を利用する上で最も重要な例外です。

// 数値ではない
String value = "Java";

// 変換
long number =
        Long.parseLong(value);
Java

実行結果

NumberFormatException

この例外は、

「数値として解釈できない文字列を変換しようとした」

場合に発生します。

実務では毎日のように遭遇する可能性があるため必ず覚えましょう。

実務では例外処理を組み合わせる

ユーザー入力や外部データは信用できません。

そのため例外処理とセットで利用することが重要です。

try {

    // long型へ変換
    long value =
            Long.parseLong(input);

    System.out.println(value);

} catch (NumberFormatException e) {

    // 入力エラー
    System.out.println(
            "数値を入力してください"
    );

}
Java

業務システムでは基本形となります。

空文字にも注意しよう

初心者が見落としやすいポイントです。

// 空文字
String value = "";

// エラー
Long.parseLong(value);
Java

実行結果

NumberFormatException

空文字は数値ではありません。

事前チェックが必要です。

// 未入力チェック
if (value != null &&
    !value.isBlank()) {

    long number =
            Long.parseLong(value);

}
Java

前後の空白にも注意しよう

実務では入力値に余計な空白が混入することがよくあります。

// 空白付き
String value = " 1000 ";

// エラー
Long.parseLong(value);
Java

実行結果

NumberFormatException

この場合はtrim()を利用します。

// 空白除去後に変換
long number =
        Long.parseLong(
                value.trim()
        );
Java

安全に変換できます。

intでは変換できない大きな値を扱える

Long.parseLong()が活躍する代表的な場面です。

// 30億
String value = "3000000000";

// longへ変換
long number =
        Long.parseLong(value);

System.out.println(number);
Java

実行結果

3000000000

これはint型では扱えません。

そのため大きなIDや金額を扱う業務システムではlong型が頻繁に利用されます。

実務でよくある利用例

会員IDの変換

// Web画面から取得
String memberId =
        request.getParameter(
                "memberId"
        );

// longへ変換
long id =
        Long.parseLong(memberId);
Java

売上金額の変換

// CSVデータ
String amount = csv[5];

// 金額変換
long salesAmount =
        Long.parseLong(amount);
Java

タイムスタンプ処理

// APIから取得
String timestamp =
        "1712345678901";

// long変換
long time =
        Long.parseLong(timestamp);
Java

日時処理では非常によく利用されます。

Long.parseLong()とInteger.parseInt()の違い

Integer.parseInt()

// int型
int value =
        Integer.parseInt(
                "100"
        );
Java

戻り値はint型です。

Long.parseLong()

// long型
long value =
        Long.parseLong(
                "100"
        );
Java

戻り値はlong型です。

扱う数値の大きさによって使い分けます。

Long.valueOf()との違い

こちらもよく混同されます。

Long.parseLong()

// primitive型
long value =
        Long.parseLong("100");
Java

Long.valueOf()

// ラッパークラス
Long value =
        Long.valueOf("100");
Java

戻り値が異なります。

parseLong()はlong型、 valueOf()はLong型を返します。

実務で使えるテンプレート集

基本変換テンプレート

// String → long
long value =
        Long.parseLong(text);
Java

安全な変換テンプレート

try {

    long value =
            Long.parseLong(text);

} catch (NumberFormatException e) {

    // エラー処理

}
Java

trim付きテンプレート

// 空白除去
long value =
        Long.parseLong(
                text.trim()
        );
Java

入力チェック付きテンプレート

// 未入力確認
if (text != null &&
    !text.isBlank()) {

    long value =
            Long.parseLong(text);

}
Java

情報セキュリティの観点から見る重要性

業務システムでは入力値を信用してはいけません。

ユーザーや外部システムから受け取った文字列には、

  • 不正文字列
  • 異常値
  • 範囲外数値
  • 空文字
  • 悪意ある入力

が含まれる可能性があります。

そのためLong.parseLong()を利用する際は、例外処理と入力値検証を組み合わせることが重要です。

適切なバリデーションを行うことで、システム障害や予期しない動作を防ぐことができます。

初心者が覚えておくべき重要ポイント

  • 文字列をlong型へ変換できる
  • 大きな整数を扱える
  • 数値以外ではNumberFormatExceptionが発生する
  • 空文字や空白文字に注意する
  • 例外処理を組み合わせるのが基本
  • 会員IDや売上金額で頻繁に利用される
  • Integer.parseInt()との違いを理解する

まとめ

Long.parseLong()は、文字列をlong型へ変換するためのJava標準メソッドです。

  • Stringをlongへ変換できる
  • int型では扱えない大きな数値を扱える
  • 会員IDや注文番号で頻繁に利用される
  • 不正データではNumberFormatExceptionが発生する
  • 例外処理と入力チェックが重要である
  • 業務システムでの利用頻度は非常に高い
  • 安全な数値変換の基本として必ず習得したいメソッドである

特に実務では、データベースの主キーや大規模な取引データなど、int型では収まらない数値を扱う機会が数多くあります。Long.parseLong()を正しく理解し、入力値検証や例外処理と組み合わせて利用することで、より安全で堅牢なJavaアプリケーションを開発できるようになります。

タイトルとURLをコピーしました