- Long.parseLong()とは何か
- なぜlong型が必要なのか
- Long.parseLong()の基本構文
- ステップバイステップで理解する
- Stringのままだと何が問題なのか
- どのような文字列が変換できるのか
- 最重要:NumberFormatExceptionを理解しよう
- 実務では例外処理を組み合わせる
- 空文字にも注意しよう
- 前後の空白にも注意しよう
- intでは変換できない大きな値を扱える
- 実務でよくある利用例
- Long.parseLong()とInteger.parseInt()の違い
- Long.valueOf()との違い
- 実務で使えるテンプレート集
- 情報セキュリティの観点から見る重要性
- 初心者が覚えておくべき重要ポイント
- まとめ
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");
JavaLong.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) {
// エラー処理
}
Javatrim付きテンプレート
// 空白除去
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アプリケーションを開発できるようになります。
