Arduino の文字列を比較する
-
Arduino の
compareTo()関数を使用して文字列を比較する -
Arduino の
equals()関数を使用して文字列を比較する - Arduino の比較演算子を使用して文字列を比較する
このチュートリアルでは、Arduino の compareTo() 関数を使用して 2つの文字列を比較する方法について説明します。
Arduino の compareTo() 関数を使用して文字列を比較する
Arduino で 2つの文字列を比較するには、文字列オブジェクトの compareTo() 関数を使用できます。compareTo() 関数は、2つの文字列に存在する文字を次々に比較して、2つの文字列が同じであるかどうかを識別します。
compareTo() 関数は、両方の文字列の最初の文字から開始し、ASCII 値を使用してそれらを比較し、文字列が一致する場合は、次の文字に移動します。各キーボード文字には一意の ASCII 値があります。
大文字と小文字の ASCII 値は異なります。a の ASCII 値は 97、A は 65 です。大文字と小文字を無視して 2つの文字列を比較する場合は、両方の文字列が大文字または小文字であることを確認する必要があります。
文字列を大文字に変換するには、Arduino の文字列オブジェクトの toUpperCase() 関数を使用できます。文字列を小文字に変換するには、Arduino の文字列オブジェクトの toLowerCase() 関数を使用できます。
compareTo() 関数は、2つの文字列が等しい場合に 0 を返します。compareTo() 関数は、最初の文字列の ASCII 値が 2 番目の文字列の ASCII 値よりも小さい場合、負の数を返します。
compareTo() 関数は、最初の文字列の ASCII 値が 2 番目の文字列の ASCII 値より大きい場合、正の数を返します。たとえば、2つの文字列変数を定義し、Arduino の compareTo() 関数を使用してそれらを比較してみましょう。
String string_1 = "Hello";
String string_2 = "World";
int result = 0;
void setup() { result = string_1.compareTo(string_2); }
void loop() {}
比較結果は result 変数内に保存されます。compareTo() 関数の代わりに equals() 関数を使用することもできます。
Arduino の equals() 関数を使用して文字列を比較する
equals() 関数はブール値を返します。これは、2つの文字列が等しい場合は true、等しくない場合は false になります。equals() 関数でも大文字と小文字が区別されます。つまり、abc は ABC と等しくなりません。
equals() 関数の詳細については、このリンクを確認してください。大文字と小文字の区別を無視して 2つの文字列を比較する場合は、文字列オブジェクトの equalsIgnoreCase() 関数を使用できます。
equalsIgnoreCase() もブール値を返しますが、大文字と小文字は区別されません。つまり、abc と ABC は等しくなり、関数は true を返します。equalsIgnoreCase() 関数の詳細については、このリンクを確認してください。
Arduino の比較演算子を使用して文字列を比較する
<= 以下、>= 以上、== に等しいなどの比較演算子、およびその他の演算子を使用して文字列を比較することもできます。
この場合、文字列は文字列に存在する文字の ASCII 値に従って比較されます。つまり、この比較でも大文字と小文字が区別されます。
たとえば、次のステートメントは false を返します。
"hello" == "Hello"
