【Java入門】String.lengthで文字列の長さを確認する方法

Javaで文字数をカウントするにはどうすればいいの?
String.lengthメソッドで改行コードも含めた文字数を確認したい

こんにちは!エンジニアの増永です。Javaに限りませんがプログラミングしていると、文字列の長さを確認したくなることがあります。

たとえば、文字数制限があって文字数をチェックする必要がある場合などです。

この記事では、文字数を確認する方法をサクッと調べたい方に向けて、以下の内容で解説していきます。

  • 文字列の長さを取得する方法
  • 文字数制限などで使う場合の注意点

今回はStringクラスのlengthメソッドを使った確認方法をわかりやすく解説します!

JavaのString.lengthとは

JavaのStringクラスのlengthメソッドは、主に指定した文字列の文字数をカウントするためのメソッドです。

lengthメソッドを使用することにより、入力した文字数のチェックなどを行うことができます。

lengthメソッドは以下のように記述します

String.length()

String.lengthで文字列の長さを取得する

ここではStringクラスのlengthメソッドの基本的な使い方を見ていきましょう。

Stringクラスのlengthメソッドは、以下のように使用します。

以下のサンプルでは郵便番号の文字数を取得しています。

public class Stringlength {
 
    public static void main(String[] args) {
        // 変数の宣言
        String postCode = "1112222";
     
        // 文字数を出力
        System.out.println("郵便番号の文字数は" + postCode.length() + "です。");
    }

}

実行結果:

郵便番号の文字数は7です。

Stringで宣言した変数にlengthメソッドを使用すれば、「1112222」の文字列の長さが7だとわかりました。

String.lengthを文字数制限などで使う場合の注意点

lengthメソッドを使用して返ってきた値が必ずしも得たい数字とは限らない場合があります。

ここでは、文字列の長さを確認する上での注意点について解説していきます!

全角と半角での文字数の扱い

lengthメソッドで取得した場合、全角、半角で文字数は変わってくるのでしょうか?

以下のサンプルでは全角、半角で宣言された住所の番地の文字数を取得しています。

public class Stringlength {
 
    public static void main(String[] args) {
        // 変数の宣言
        String jusho1 = "兵庫県神戸市1234";
        String jusho2 = "兵庫県神戸市1234";
     
        // 文字数を出力
        System.out.println("住所(全角)の文字数は" + jusho1.length() + "です。");
        System.out.println("住所(半角)の文字数は" + jusho2.length() + "です。");
    }

}

実行結果:

住所(全角)の文字数は10です。
住所(半角)の文字数は10です。

Stringで宣言された変数の場合、全角、半角どちらの文字数も同じ10であることがわかりました。

バイト数と文字数の違い

プログラムを学習していると「バイト(byte)」に関わることもあります。

文字数とバイト数では結果が変わってきます。

なお、バイト数はString.getBytes().lengthを使って取得します。

以下のサンプルでは同じ文字列に対して文字数とバイト数を取得しています。

public class Stringlength {
 
    public static void main(String[] args) {
        // 変数の宣言
        String jusho1 = "兵庫県神戸市1234";
     
        // 文字数を出力
        System.out.println("住所の文字数は" + jusho1.length() + "です。");
        System.out.println("住所のバイト数は" + jusho1.getBytes().length + "です。");
    }

}

実行結果:

住所の文字数は10です。
住所のバイト数は22です。

文字数では10、バイト数では30と結果が異なることがわかりました。プログラミングする際はどちらを取得したいのか(取得して何をしたいのか)を意識することが重要です。

なおバイト数はShift-JISやUTF-8などの「文字コード」でも変わります。

改行コードを含む文字数

文字列の中には改行することもあります。目には見えませんがプログラムでは「改行コード」というものが入っているため、出力する際きちんと整形されるのです。

この改行コードは文字数としてカウントされるのでしょうか?ちなみに、Windowsの改行コードは「\r\n」です。

\(バックスラッシュ)ではなく¥(円マーク)でも同じ意味です。

Linuxでは「\n」です。

以下のサンプルでは改行コードを含んだ文字数を取得しています。

public class Stringlength {
 
    public static void main(String[] args) {
        // 変数の宣言
        String jusho1 = "兵庫県神戸市\r\n1234";
     
        // 文字数を出力
        System.out.println("住所は" + jusho1 + "です。");
        System.out.println("住所の文字数は" + jusho1.length() + "です。");
    }

}

実行結果:

住所は兵庫県神戸市
1234です。
住所の文字数は12です。

改行コード「\r」「\n」それぞれで1文字としてカウントされたため12となりました。

改行コードもカウントされるため文字数制限のある入力の場合、「改行コードもカウントされます」という注意書きを設けたり、プログラム内で改行コードを取り除いてカウントするといった考慮が必要になります。

まとめ

今回はlengthメソッドを使った文字列の長さを取得する方法を説明しました。プログラミングにおいて文字列(String)はよく使う変数です。

文字列の文字数チェックを誤るとデータの整合性が合わなくなるため、次作業のテストでエラーが発生することがあります。

もしlengthメソッドの使い方を忘れてしまったら、この記事を思い出して下さい!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

増永

増永

WEB画面を使った業務アプリを主に開発しています。
基盤、DB構築の経験もあるため、プログラミングだけでなく幅広い内容をわかりやすく記事作成できるよう心がけています。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説