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

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

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

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

生徒

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

先生

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

生徒

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

先生

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

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メソッドを使うメリット

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.まとめ

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

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

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

生徒

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

先生

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

生徒

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

先生

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

生成AIを基礎から学びたい方へ

ChatGPTなどの生成AIをこれから学びたい方に向けて、AIスキルアカデミーの口コミ・評判、料金、無料セミナーの内容を詳しくまとめています。

AIスキルアカデミーの口コミ・評判を詳しく見る
カテゴリの一覧へ
新着記事
New1
Spring
Spring Bootの@RequestParamの使い方を解説!初心者でもわかるGETリクエストのパラメータ取得
更新記事
New2
Java
JavaのLocalDateTime.formatメソッドを完全解説!初心者でもわかる日時フォーマット入門
更新記事
New3
Java
Javaのラムダ式とStreamのfilterを徹底解説!初心者でもわかる条件による絞り込み処理
更新記事
New4
Servlet
JavaのServletExceptionクラスを初心者向けに徹底解説!
更新記事
人気記事
No.1
Java&Spring記事人気No1
Servlet
JavaサーブレットのdoPostメソッドとは?初心者向けにやさしく解説!
No.2
Java&Spring記事人気No2
Servlet
JavaのHttpServletRequestWrapperとgetSessionメソッドの使い方を徹底解説!初心者向けServletのセッション管理入門
No.3
Java&Spring記事人気No3
Servlet
JavaのServletExceptionクラスを初心者向けに徹底解説!
No.4
Java&Spring記事人気No4
Servlet
JavaのHttpServletResponseクラスを初心者向けに徹底解説!
No.5
Java&Spring記事人気No5
Java
JavaのStringクラスとlengthメソッドを完全解説!初心者でも理解できる文字列の長さ取得の使い方
No.6
Java&Spring記事人気No6
Servlet
JavaのHttpSessionAttributeListenerとattributeRemovedメソッドの使い方を徹底解説!初心者でもわかるセッション属性の削除と監視
No.7
Java&Spring記事人気No7
Java
Javaのクラスとインスタンス化、コンストラクタの使い方完全ガイド!初心者でもわかるオブジェクト指向の基礎
No.8
Java&Spring記事人気No8
Servlet
JavaのHttpSessionインターフェースとgetSessionContextメソッドを徹底解説!初心者でもわかるセッション管理の基本