Javaで文字列を比較する方法
文字列が等しいかどうかを比較するには、Stringオブジェクトのequals
を使用する必要があります またはequalsIgnoreCase
メソッド。 ==
を使用すべきでない理由もわかります 文字列を比較する演算子。
文字列とequals()メソッドの比較
Javaで2つの文字列を比較する必要があり、文字列の大文字と小文字も気にする必要がある場合は、equals()
を使用できます。 メソッド。
たとえば、次のスニペットは、文字列の2つのインスタンスが大文字小文字を含むすべての文字で等しいかどうかを判断します。
public class CompareTwoStrings {
public static void main(String[] args) {
String firstString = "Test123";
String secondString = "Test" + 123;
String thirdString = "TEST123";
if (firstString.equals(secondString)) {
System.out.println("first and second strings are equal");
}
if (firstString.equals(thirdString)) {
System.out.println("first and third string are equal");
}
}
}
出力:
first and second strings are equal
注:firstStringとthirdStringの大文字と小文字が一致しないため、2番目のprintステートメントは実行されません。 文字列とequalsIgnoreCase()メソッドの比較
Javaで2つの文字列を比較する必要があるが、文字列の大文字と小文字を区別しない場合は、equalsIgnoreCase()
を使用できます。 メソッド。
たとえば、上記のコードスニペットで、.equals()
を置き換えた場合 .equalsIgnoreCase()
を使用 メソッドの場合、両方のprintステートメントが実行されます:
public class CompareTwoStrings {
public static void main(String[] args) {
String firstString = "Test123";
String secondString = "Test" + 123;
String thirdString = "TEST123";
if (firstString.equalsIgnoreCase(secondString)) {
System.out.println("first and second strings are equal");
}
if (firstString.equalsIgnoreCase(thirdString)) {
System.out.println("first and third string are equal");
}
}
}
出力:
first and second strings are equal
first and third string are equal
関連:
- JavaでtoString()をオーバーライドする理由
- Javaで文字列を逆にする方法
- 文字列から数値を抽出する方法
- JavaでStringをIntに変換する方法
文字列を比較するために==演算子を使用しないでください
注:Javaで2つの文字列を比較する場合、 ==は使用しないでください。 または!= 演算子。これらの演算子は実際に参照をテストし、複数のStringオブジェクトが同じ文字列を表す可能性があるため、これは間違った答えを与える傾向があります。
代わりに、String.equals(Object)
を使用してください メソッド。値に基づいてStringオブジェクトを比較します。
public class CompareTwoStrings {
public static void main(String[] args) {
String firstString = "Test123";
String secondString = "Test123";
String thirdString = new String("Test123");
if (firstString == secondString) {
System.out.println("first and second strings are equal");
}
if (firstString == thirdString) {
System.out.println("first and third strings are equal");
}
}
}
出力:
first and second strings are equal
注:2番目のprintステートメントは実行されません。
文字列を定数値と比較する場合、equalsの左側に定数値を配置して、NullPointerException
が発生しないようにすることができます。 他の文字列がnullの場合。
例:
"baz".equals(foo)
foo.equals("baz")
NullPointerException
をスローします fooがnullの場合、"baz".equals(foo)
false
と評価されます 。
より読みやすい代替手段は、Objects.equals()
を使用することです。 、両方のパラメータでnullチェックを実行します:
例えばObjects.equals(foo, "baz")
。
Java 1.7以降では、文字列変数をswitchステートメントのリテラルと比較することができます。文字列がnullでないことを確認してください。そうでない場合、常にNullPointerException
がスローされます。 。値はString.equals
を使用して比較されます 、つまり大文字と小文字が区別されます。
public class CompareTwoStrings {
public static void main(String[] args) {
String stringToSwitch = "A";
switch (stringToSwitch) {
case "a":
System.out.println("a");
break;
case "A":
System.out.println("A"); //the code goes here
break;
case "B":
System.out.println("B");
break;
default:
break;
}
}
}
この投稿では、Javaの文字列をコード例と比較する方法を説明しました。文字列の大文字小文字の区別が重要な場合は、.equals()
を使用する必要があります 大文字と小文字が重要でない場合は、.equalsIgnoreCase()
を使用する必要があります 。
さらに、==
は使用しないでください ==
のように、文字列を比較する演算子 演算子は値ではなく参照をチェックします。
-
JavaでCLOB型を文字列に変換する方法は?
CLOBは一般にCharacterLargeObjectの略で、SQL Clobは組み込みのデータ型であり、大量のテキストデータを格納するために使用されます。このデータ型を使用すると、最大2,147,483,647文字のデータを格納できます。 JDBC APIのjava.sql.Clobインターフェースは、CLOBデータ型を表します。 JDBCのClobオブジェクトはSQLロケーターを使用して実装されているため、SQL CLOB(データではない)への論理ポインターを保持します。 MySQL データベースは、TINYTEXT、TEXT、MEDIUMTEXT、およびLONGTEXTの4つの
-
Java-JSONファイルを文字列として読み取る方法
この投稿では、JSONファイルをJavaで文字列変数として読み取る方法を見ていきます。これは、特にJSONペイロードをエンドポイントにPOSTするAPIテストで役立つ場合があります。 JSONペイロードをファイルに入れてから、JSONファイルを文字列として読み取り、POSTリクエストの本文として使用できます。 JSONファイルを文字列として読み取る 次の場所にJSONファイルがあるとします。 src/test/resources/myFile.json { name:David, age:30, hobbies:[Football,Cooking,Swimming],