文字列を調査する
数値の判定には演算子でできましたが、
Javaで文字列同士を判定するとなると演算子ではできません。
そこで登場するのが以下のメソッドです。
メソッド | 説明 |
---|---|
public boolean equlas(Object o) | 大文字、小文字を区別して比較 |
public boolean equlasIgnoreCase(String s) | 大文字、小文字を区別せずに比較 |
public int length() | 文字数を調べる |
public boolean isEmpty() | 空文字か調べる |
サンプルコード equalsメソッド
大文字、小文字を区別して比較を行います。
戻り値はbooleanで、一致の場合true。
不一致の場合falseが返却されます。
public class Main {
public static void main (String[] args) {
String str1 = "Java";
String str2 = "java";
if (str1.equals(str2)) {
System.out.println(str1 + "と" + str2 + "は完全一致");
} else if (str1.equlas(str1)) {
System.out.println(str1 + "と" + str1 + "は完全一致");
}
}
}
実行結果
JavaとJavaは完全一致
サンプルコード equlasIgnoreCaseメソッド
大文字、小文字は区別することなく比較を行います。
戻り値は一致の場合true、
不一致の場合falseが返却されます。
public class Main {
public static void main (String[] args) {
String str1 = "Java";
String str2 = "java";
// 大文字、小文字を区別せずに判定
if (str1.equalsIgnoreCase(str2)) {
System.out.println(str1 + "と" + str2 + "は区別しなければ同じ");
}
}
}
実行結果
Javaとjavaは区別しなければ同じ
サンプルコード lengthメソッド
文字数をint型で取得します。
調べたい文字列.length()
文字列に使って文字数を知りたい場合にはlengthの後ろにカッコが必要です。
配列の長さを知りたいときのlengthは後ろのカッコが不要です。
public class Main {
public static void main (String[] args) {
String str1 = "Java";
// 文字数を取得
int len = str1.length();
System.out.println(str1 + "の文字数は" + len);
// 空文字の判定
if (str1.isEmpty()) {
System.out.println("変数str1は空文字です。");
}
}
}
実行結果
Javaの文字数は4
サンプルコード isEmptyメソッド
対象の文字列が空文字か判定を行います。
調べたい文字列.isEmpty()
戻り値は中身が空の場合、true
空ではない場合、falseが
返却されます。
英語でEmptyの意味が「空(カラ)」なので言葉のまんまですね。
public class Main {
public static void main (String[] args) {
String str1 = "Java";
// 空文字の判定
if (str1.isEmpty()) {
System.out.println("変数str1は空文字です。");
} else {
System.out.println("変数str1はカラではありません。");
}
}
実行結果
変数str1はカラではありません。
注意点
当記事で紹介したメソッドですが、
変数.equals(str)
変数.equlasIgnoreCase(str)
変数.length()
変数.isEmpty()
どれも文字列に対してメソッドを呼び出していますが
もし、文字列がNullだった場合
「NullPointerException」が発生するので注意しましょう。
少しでも発生確率を抑える記載方法としては
判定を行う文字列が決まっている場合
"文字列".equals(str)
"文字列".equlasIgnoreCase(str)
"文字列".length()
"文字列".isEmpty()
このように記載することで
exceptionの発生を低減できるかと思いますので
必要に応じてこちらも活用してみて下さい。