☜前の章へ 計算の基本と四則演算や演算子の使い方
☞次の章へ 条件分岐(if・else if・switch)
ここでは文字列の基本的な使い方を学習していきます。
キーボードから入力した値を変数に代入する方法も確認します。
Javaの文字列Stringクラスの基本的な使い方
Javaの文字列の宣言と初期化の方法
まずは、Javaで文字列をどのように扱うかサンプルのソースコードを見てみましょう。
public class App {
public static void main(String[] args) {
String s = "こんにちは";
System.out.println(s);
}
}
出力結果
Javaで文字列を扱うためにはデータ型の「String」を使います。
Stringクラスと呼びます。
int型やchar型は、型というのに対して、Stringクラス?クラスってなに?と思いませんでしたか?
両方とも変数の種類を指定するデータ型なのですが、データ型には2種類あります。
Stringはこの図のクラスに該当するため、Stringクラスと呼ばれます。
Stringクラスの変数に文字列を代入したい場合、文字列を””(ダブルクォーテーション)で囲みます。
そしてStringクラスにはメソッド(便利な機能)が用意されており、文字列を扱うための様々な操作を行うことが出来ます。
例えば、「String str1 = “apple”;」と「String str2 = “orange”;」という2つのStringクラスの変数があった場合、「str1.equals(str2)」と書くと変数の値が同じか、異なるかを判断できます。
この後基本的な操作を確認していきます。
if文、for文、配列などまだ学習していない知識がありますが、まずはどのようなことができるかが分かれば大丈夫です。
Javaの文字列を結合する方法
public class App {
public static void main(String[] args) {
String firstName = "佐藤";
String lastName = "太郎";
String fullName = firstName + " " + lastName;
System.out.println("フルネーム: " + fullName);
}
}
出力結果
文字列同士を、+演算子で結合することができます。
Javaの文字列を比較する方法(equals)
public class App {
public static void main(String[] args) {
String str1 = "apple";
String str2 = "orange";
if (str1.equals(str2)) {
System.out.println("同じ文字列");
} else {
System.out.println("異なる文字列");
}
}
}
出力結果
equalsメソッドを使うと文字列を比較することができます。
Javaの文字列の長さを取得する方法(length)
public class App {
public static void main(String[] args) {
String s = "Hello, World!";
int length = s.length();
System.out.println("文字列の長さ: " + length);
}
}
出力結果
lengthメソッドを使うと文字列の長さをすることができます。
空白も1文字とみなされます。
Javaの文字列を検索する方法(indexOf)
public class App {
public static void main(String[] args) {
String s = "Hello, World!";
int index = s.indexOf("World");
System.out.println("検索結果: " + index);
}
}
出力結果
indexOfメソッドを指定した単語が変数の何文字目にあるかを教えてくれます。
変数sの値「Hello, World!」の何文字目に「World」という単語があるかと指定しています。
「Hello, World!」のHは0文字目と判断されるので、Wは7文字目になります。
Hは0文字目、eは1文字…。
Javaの部分文字列を取得する方法(substring)
public class App {
public static void main(String[] args) {
String s = "Hello, World!";
String s2 = s.substring(7, 12);
System.out.println("部分文字列: " + s2);
}
}
出力結果
substringメソッドは指定した範囲の文字列を取得することができます。
Javaの文字列を置換する方法(replace)
public class App {
public static void main(String[] args) {
String s = "Hello, World!";
String s2 = s.replace("World", "Japan");
System.out.println("置換後の文字列: " + s2);
}
}
出力結果
replaceメソッドは変数内の指定した文字列と入れ替えたい文字列を指定することで、文字列を置換することが出来ます。
Javaの文字列を分割する方法(split)
public class App {
public static void main(String[] args) {
String s = "apple,orange,banana";
String[] fruits = s.split(",");
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
出力結果
splitメソッドを使うと、指定した区切り文字で変数の文字列を分割して、配列に格納することができます。
Javaのキーボード入力の方法
キーボードで文字を入力し、変数に代入する方法を学びます。
Scannerクラスを使います。
まずはコピペして実行してみましょう。
import java.util.Scanner;
public class App {
public static void main(String[] args) {
System.out.println("入力してください");
//文字化けする場合この様に記述してください→Scanner scan = new Scanner(System.in,"SHIFT_JIS");
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
System.out.println(str + "...");
scan.close();
}
}
ソースコードの1行目を見ると、「import java.util.Scanner;」と書かれています。
Scannerを利用するためには冒頭に「import java.util.Scanner;」と書く必要があります。
次に、「Scanner scan = new Scanner(System.in);」と書かれている箇所があります。
これをクラスをインスタンス化すると言います。
クラスのインスタンス化については10章で解説します。
今は、キーボード入力をするためには「Scanner scan = new Scanner(System.in);」と書く必要があると分かってもらえれば大丈夫です。
「Scanner scan」のscanという名前は任意の名前に変更可能です。他の文は固定文です。
「String str = scan.nextLine();」という箇所が実際にキーボードで文字列の入力を促す処理です。
「String str = scan.nextLine();」はstrという名前は任意の名前に変更可能です。他の文は固定文です。
数値を入力してほしい場合は、書き方が変わります。
例:int num = scan.nextInt();
変数の型がint型になり、nextLineがnextIntに変わっています。
練習問題
public class App {
public static void main(String[] args) {
// String型の変数を自分の名前で初期化
String myName = "Your Name"; // ここに自分の名前を入れてください
// 名前の表示
System.out.println("私の名前は " + myName + " です。");
}
}
import java.util.Scanner;
public class App {
public static void main(String[] args) {
// キーボードからの入力を受け取るためのScannerオブジェクトを作成
Scanner scanner = new Scanner(System.in,"SHIFT_JIS");
// 名前の入力を促すメッセージを表示
System.out.print("あなたの名前を入力してください: ");
// キーボードから名前を入力
String name = scanner.nextLine();
// 年齢の入力を促すメッセージを表示
System.out.print("年齢を入力してください: ");
// キーボードから年齢を入力
int age = scanner.nextInt();
// 入力された名前と年齢を表示
System.out.println("あなたの名前は " + name + " さん、" + age + " 歳です。");
// Scannerを閉じる
scanner.close();
}
}