Java プログラム

【Javaの基礎知識】データ型の基本!文字列の作成方法とStringのメソッド

2020年4月13日

前回は四則演算や変数の使い方、基本データ型について学習しました。

今回はその中でちらっと出てきた「String型」についての解説になります。String型は基本データ型ではありませんが、int型と並んでよく使うデータ型なので、ここで基本を押さえておきましょう!

文字列はオブジェクトとして扱う

String型は文字列を扱うデータ型ですが、文字列はただのデータではなく「charの集合体」です。また、実はString型の変数はStringというクラスから生成したオブジェクトです。

オブジェクト(インスタンス)とは設計したクラスを実体化して使えるようにするための処理で、new演算子を使って生成します(後述します)。

前回の変数の解説では👇のように記述しましたが、これはStringをnew演算子を使わず、基本データ型と同じように使えるようにしよう!というJava開発者側の思惑があっての記述方法です。

String str = "Hello Java World!";

new演算子でオブジェクトを生成する

では本来のオブジェクトの生成方法はどんな感じなのかと言うと、次のように記述します。

String str = new String("Hello Java World!");

「new クラス名」という書き方でそのクラスのオブジェクトを生成できます。これは他のどのクラスでも同じなので、覚えておきましょう。

ただし、詳しい説明は省きますが、new String() でオブジェクトを生成するより、使わないで生成する方が、メモリの消費量が少なく済む上、簡潔に記述できるのでおすすめです。

メソッドを実行してみる

クラスとメソッドの解説の際にお話ししましたが、クラスの動作や役割を定義するためにはメソッドを定義するんでしたね。

これはStringクラスも例外ではありません。Stringクラスの中にはいくつものメソッドが定義されています。基本的には自身が持っている文字列に対して何らかの処理をするものが多いです。

メソッドは、呼び出すことで何らかの結果を返してくれます。ここではそれらの使い方を見ていきましょう。

これ以降のプログラムは、すべてメソッドの中へ記述します。

package java_study;
public class Main {
    public static void main(String[] args) {
            //ここへ記述します。
    }
}

文字列の長さを取得・length()

文字列の長さを取得するにはlength()を使います。

String str = "Hello Java World!";
System.out.println(str.length());
String j_str = "こんにちはJavaの世界!";
System.out.println(j_str.length());

コンソール

17
13

このようにメソッドは「オブジェクト変数.メソッド名()」という形で使えます。

上の例ではstrは英語、j_strは日本語を入れていますが、Javaのlength()はアルファベットも日本語も同じ1文字として扱います。

文字を抜き出す・charAt()

文字列から指定した箇所の文字を抜き出すにはcharAt()を使います。

抜き出した文字はchar型になります。

String str = "Hello Java World!";
System.out.println(str.charAt(4));
System.out.println(str.charAt(6));

コンソール

o
J

上記の例ではcharAt()のカッコ内に4と6をそれぞれ入れています。これは「引数」と呼ばれるもので、メソッドはこの引数をメソッド内部で使用し、結果を返しています。

Stringは先頭の文字から0, 1, 2, 3...nとインデックス番号が割り当てられています(0から始まりなので注意!)。今回は4と6をを指定したので、5番目の文字である「o」と、7番目の「J」が返ってきました。

空かどうかを調べる・isEmpty()

文字列が空かどうかを調べるにはisEmpty()を使います。isEmpty()は文字列が空の場合はtrue、空じゃない場合はfalseを返してくれます。

String str = "Hello Java World!";
ystem.out.println(str.isEmpty());
String emptyStr = "";
System.out.println(emptyStr.isEmpty());

コンソール

false
true

全て小文字にする・toLowerCase()

文字列を全て小文字にしたい場合はtoLowerCase()を使います。

String str = "Hello Java World!";
System.out.println(str.toLowerCase());
System.out.println(str.toUpperCase());

コンソール

hello java world!
HELLO JAVA WORLD!

ちなみに、全て大文字にしたい場合はtoUpperCase()を使います。

文字列を抜き出す・substring()

文字1文字を抜き出すにはcharAt()を使いましたが、文字列を抜き出すにはsubstring()を使います。

charAt()ではインデックス番号を1つ引数として渡していましたが、substring()では開始と終了のインデックス番号を渡します。

String str = "Hello Java World!";
System.out.println(str.substring(0, 5));
System.out.println(str.substring(6, 10));

コンソール

Hello
Java

文字列の位置を取得・indexOf()

引数で指定した文字列が現れる箇所をインデックス番号で返してくれるメソッドです。ただし、見つからなかった場合は-1を返します。

String str = "Hello Java World!";
System.out.println(str.indexOf("Java"));
System.out.println(str.indexOf("Python"));

コンソール

6
-1

indexOf()は戻り値が-1かどうかを確認し「指定した文字が存在するかどうか」を判定する場合によく使われます。

よく読まれている記事

1

独立前は、誰もが不安でいっぱい。近い将来、フリーランスとして独立を考えている方が独立初期に躓かないために「独立前にやるべきことチェックリスト」をご紹介します。 当記事は前編となる「お金まわり編」。全て ...

2

ゲームなどのエンタメ分野での導入が進んでいるVR。言葉自体は耳にしたことがあっても、その意味を詳しく知らないという人も多いのではないでしょうか。また、次世代の新たな技術をビジネスに積極的に活用していく ...

3

フリーランスの確定申告には、青色申告と白色申告の2種類があります。いったいどちらの申告方法を選ぶべきなのでしょうか。 この記事では、青色申告と白色申告、それぞれのメリット・デメリットを把握することでベ ...

4

フリーランスの仕事場は、自宅をはじめとし、カフェや図書館、コワーキングスペースなど自由に選べます。しかし全ての場所で100%集中ができるどうかは、人それぞれです。どのような環境が自身の仕事場として快適 ...

5

フリーランスのITエンジニアとして、一番難しいのは「自己管理」と言えるでしょう。 自分の体調管理はもとより、仕事のスケジュール等すべて自分で管理します。もちろんフリーランスに有給休暇等ありませんから休 ...

-Java プログラム

Copyright© Beエンジニア , 2020 All Rights Reserved.