カテゴリ: Java 更新日: 2026/05/08

JavaのScannerクラスとlocaleメソッドを完全ガイド!初心者向けにロケールの使い方を解説

Scannerのlocaleメソッド
Scannerのlocaleメソッド

先生と生徒の会話形式で理解しよう

生徒

「Javaで数値や日付の書式が国によって違うって聞いたんですけど、それってどうやって設定するんですか?」

先生

「JavaではScannerクラスのlocaleメソッドを使うことで、ロケール(言語と国)を指定して入力の解析方法を変えることができます。」

生徒

「それを使えば、たとえば日本とアメリカで違う数値の表記にも対応できるんですね?」

先生

「そのとおり。localeメソッドの使い方を覚えれば、国ごとの形式に合わせたプログラムが書けるようになりますよ。」

1. Scannerクラスとは

「1. Scannerクラスとは」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

1. Scannerクラスとは
1. Scannerクラスとは

JavaのScannerクラスは、キーボード入力や文字列、ファイルからの読み取りを行うための便利なクラスです。Java初心者が文字や数値などを取り扱うときに頻繁に利用される基本的なクラスのひとつです。

Scannerはjava.utilパッケージに含まれており、使用するにはimport java.util.Scanner;の記述が必要です。文字列を読み取り、数値へ変換したり、トークン単位に分割したりといった処理が簡単にできます。

2. localeメソッドの基本的な使い方

2. localeメソッドの基本的な使い方
2. localeメソッドの基本的な使い方

JavaのScannerクラスにはlocaleというメソッドがあります。これは、Scannerが入力されたデータを解釈する際に使う<強>ロケール(言語や国の設定)を変更するために使用されます。

たとえば、アメリカでは小数点としてピリオド(.)が使われますが、ヨーロッパや日本ではカンマ(,)を使うことがあります。localeメソッドを使うことで、こうした表記の違いに対応できます。


import java.util.Locale;
import java.util.Scanner;

public class LocaleExample {
    public static void main(String[] args) {
        String input = "3,14";
        Scanner scanner = new Scanner(input);
        scanner.useLocale(Locale.GERMANY);

        if (scanner.hasNextDouble()) {
            double value = scanner.nextDouble();
            System.out.println("読み取った値:" + value);
        }

        scanner.close();
    }
}

3. ロケールとは何か?

3. ロケールとは何か?
3. ロケールとは何か?

ロケール(locale)とは、言語や国の設定を表すもので、日付の書式や数値の区切り記号、小数点の表現などに影響を与えます。JavaではLocaleクラスを使ってロケールを指定します。

たとえば、Locale.US(アメリカ)、Locale.JAPAN(日本)、Locale.GERMANY(ドイツ)などがあり、それぞれの文化圏における表記の違いに対応しています。Scannerにロケールを設定することで、入力されるデータをその文化圏に合わせて正しく解析できるようになります。

4. Scannerのlocaleメソッドを使うメリット

「4. Scannerのlocaleメソッドを使うメリット」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

4. Scannerのlocaleメソッドを使うメリット
4. Scannerのlocaleメソッドを使うメリット

Scannerのlocaleメソッドを使うメリットは、<強>国際化対応を簡単に実現できることです。たとえば、アメリカのユーザーが「3.14」と入力し、日本のユーザーが「3,14」と入力しても、それぞれ正しくdouble型に変換することができます。

また、国や地域ごとに違う通貨表記や数値の形式にも対応できるため、<強>多言語対応アプリや<強>グローバル向けのソフトウェア開発でも非常に重要な役割を果たします。

5. localeと一緒に使われる他のメソッド

5. localeと一緒に使われる他のメソッド
5. localeと一緒に使われる他のメソッド

Scannerのlocaleメソッドは、useLocale()と呼ばれることもあります。通常は、Scanner scanner = new Scanner(input).useLocale(Locale.US);のように、Scannerインスタンス生成時にそのままメソッドチェーンで設定されます。

また、ScannerではhasNextDouble()nextDouble()といったメソッドと組み合わせることで、数値の入力チェックや取得が可能になります。localeで指定した書式に基づいて、数値が正しく解析されるようになります。

6. Java初心者がlocaleを学ぶポイント

6. Java初心者がlocaleを学ぶポイント
6. Java初心者がlocaleを学ぶポイント

Java初心者にとってlocaleという言葉は少し難しく感じるかもしれませんが、<強>国ごとに数値や日付の書き方が違うという事実を意識すると、その必要性が理解しやすくなります。

たとえば、あるプログラムでヨーロッパのユーザーがカンマで書いた小数を正しく読み取りたい場合、localeを使わなければエラーになる可能性があります。そういったトラブルを回避するために、localeの設定は非常に重要です。

まずは、Locale.US、Locale.JAPAN、Locale.GERMANYなど代表的なロケールを使って、どのように出力や入力の解釈が変わるかを試してみることをおすすめします。

7.まとめ

「7.まとめ」の重要ポイントを、初心者の方にも分かりやすく簡潔に解説します。

7.まとめ
7.まとめ

今回の記事では、JavaプログラミングにおけるScannerクラスのlocaleメソッドについて、初心者にもわかりやすく解説しました。Scannerクラスは、キーボード入力や文字列・ファイルの読み取りに利用される基本的かつ重要なクラスです。その中でlocaleメソッドは、ユーザーが入力する数値や日付などの書式を国や地域に応じて正しく認識させるための非常に便利なメソッドです。

JavaのLocaleクラスを組み合わせることで、アメリカ・日本・ドイツなど異なるロケール(言語+国設定)に対応したuseLocale()の使い方が可能になります。例えば、Locale.USでは小数点にピリオド(.)を使い、Locale.GERMANYでは小数点にカンマ(,)を使用するなど、文化圏に合わせた数値の読み取りができるようになります。

実際の使用例として、以下のようなプログラムを見てみましょう。ここではドイツのロケールを設定して、カンマ区切りの小数を正しく読み取るサンプルを紹介します。


import java.util.Locale;
import java.util.Scanner;

public class LocaleTest {
    public static void main(String[] args) {
        String input = "12,75";
        Scanner scanner = new Scanner(input);
        scanner.useLocale(Locale.GERMANY);

        if (scanner.hasNextDouble()) {
            double number = scanner.nextDouble();
            System.out.println("読み取った数値:" + number);
        }

        scanner.close();
    }
}

このように、Scannerクラスでlocaleを設定するだけで、異なる表記方法にも柔軟に対応できます。これにより、Java初心者でも簡単に国際化対応多言語アプリの開発に踏み出すことができます。

さらに、localeと一緒に使うhasNextDouble()nextDouble()などのメソッドと連携することで、入力の信頼性を高めることができます。ロケールの設定が適切でなければ、数値の読み取りが失敗したり、例外が発生することもあるため、開発初期からロケールに関する考慮を取り入れることが大切です。

Java初心者の方は、まずLocale.USLocale.JAPANなど身近なロケールから使い方を学び、どのように数値や文字列の取り扱いに影響するかを体験してみてください。そして、「Java Scanner locale 設定方法」「Scanner useLocale 日本語対応」「Java 国際化対応 初心者」「Scanner 数値入力 カンマ対応」などのキーワードを検索することで、さらに理解を深めることができます。

実務では、ユーザーが多国籍であることも多く、ロケールの扱いは非常に重要な要素となります。日本語入力に加え、英語やドイツ語など他国のフォーマットに対応したプログラムを書くためにも、localeメソッドの正しい使い方を早めに習得しておくと大きな武器になります。

先生と生徒の振り返り会話

生徒

「Scannerのlocaleメソッドって、思ってたより重要なんですね。数値の表記が国によって違うなんて、知らなかったです!」

先生

「そうなんです。日本ではカンマが桁区切りですが、ヨーロッパでは小数点として使われるので、プログラム側で対応しないと正しく読み取れません。」

生徒

「ScannerにLocaleを設定するだけで、そんなふうに文化に合わせた処理ができるなんて便利ですね!」

先生

「将来的に国際対応のアプリを作ることを考えると、今のうちにlocaleの使い方を理解しておくととても役に立ちますよ。」

カテゴリの一覧へ
新着記事
New1
Java
JavaのNotSerializableExceptionを完全解説!初心者でも理解できるシリアライズと例外処理
新規投稿
New2
Spring
Springの@Repositoryアノテーションの使い方を徹底解説!初心者でもわかるSpringフレームワークのデータアクセス
更新記事
New3
Spring
Springの@Componentアノテーションの使い方を徹底解説!初心者でもわかるSpring Boot入門
更新記事
New4
Java
Javaのjava.mathとBigIntegerのintValueメソッドを完全解説!初心者でもわかる数値変換の基本
更新記事
人気記事
No.1
Java&Spring記事人気No1
Servlet
JavaのHttpSessionを徹底解説!初心者でもわかるセッション管理の基本
No.2
Java&Spring記事人気No2
JSP
JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
No.3
Java&Spring記事人気No3
JSP
JSPでフォームを表示して入力を受け取る基本手順をやさしく解説!初心者向けフォーム処理の入門ガイド
No.4
Java&Spring記事人気No4
Spring
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.5
Java&Spring記事人気No5
JSP
JSPでCSSやJSを読み込む基本!外部ファイルのパス指定に注意しよう
No.6
Java&Spring記事人気No6
Spring
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.7
Java&Spring記事人気No7
Spring
Spring Data JPA入門!findAll()やfindBy**()の使い方などデータベース操作の基礎を学ぶ
No.8
Java&Spring記事人気No8
JSP
JSPでif文・for文を使う方法!初心者でもわかるJavaとの違いと使い方