Javaにおける文字配列と文字列の変換方法
2442 ワード
本文は主にJavaにおけるchar配列(文字配列)と文字列Stringタイプの変換方法について述べる.
実際のアプリケーションでは、入力がcharタイプの配列である場合、または操作結果が文字配列である場合、パスワードマッチングやパスワード付与などの操作を行うためにStringタイプに変換する必要があります.たとえば、「パスワードフィールド」を使用します.「jPasswordFieldコンポーネントはパスワード値を取得します.この場合、charタイプの配列を変換する必要があります.また、文字列をchar配列に変換する場合もあります.
文字列変換文字配列
まず、文字列タイプがchar配列に変換されるのを見てみましょう.コードは以下のコードです.
結果:
明らかに、変換の過程で文字列の方法toCharArray()が用いられ、文字列「hello 123」を文字配列に変換した.
文字配列を文字列に変換
上記のコードでは、char配列を文字列に変換する方法は2つあります.は、文字配列を直接パラメータとしてStringオブジェクトを構築するものであり、 .もう1つはStringを使用するvalueOf()メソッドです.この2つのメソッドで得られる文字列は同じですが、上のコードの最後の2つの文:
両者の結果は異なり、string 1==string 2ではアドレスが比較されるため、string 1とstring 2は2つの異なるオブジェクトであり、string 1はnewメソッドによって作成され、string 2はvalueOf()メソッドによって返されるオブジェクトであるため、両者のアドレスが異なり、等式の結果がfalseとなる.
Stringのequals()メソッドは、次のようなソースコードで値を比較します.
Stringのequals()メソッドも文字列を1つずつ文字に分割して1つずつ比較することにより,比較は値でありstring 1.equals(string 2)の結果がtrueであることがわかる.
実際のアプリケーションでは、入力がcharタイプの配列である場合、または操作結果が文字配列である場合、パスワードマッチングやパスワード付与などの操作を行うためにStringタイプに変換する必要があります.たとえば、「パスワードフィールド」を使用します.「jPasswordFieldコンポーネントはパスワード値を取得します.この場合、charタイプの配列を変換する必要があります.また、文字列をchar配列に変換する場合もあります.
文字列変換文字配列
まず、文字列タイプがchar配列に変換されるのを見てみましょう.コードは以下のコードです.
String myString = "hello123"; // myString
char[] myCharArray; // myCharArray
myCharArray = myString.toCharArray(); //
for(int i=0; i
結果:
h e l l o 1 2 3
明らかに、変換の過程で文字列の方法toCharArray()が用いられ、文字列「hello 123」を文字配列に変換した.
文字配列を文字列に変換
char[] str = {'h','e', 'l', 'l', 'o', ' ', '1','2','3'}; //
String string1 = new String(str);
String string2 = String.valueOf(str);
System.out.println(string1); //hello 123
System.out.println(string2);
System.out.println(string1 == string2); //false
System.out.println(string1.equals(string2)); //true
上記のコードでは、char配列を文字列に変換する方法は2つあります.
System.out.println(string1 == string2); //false
System.out.println(string1.equals(string2)); //true
両者の結果は異なり、string 1==string 2ではアドレスが比較されるため、string 1とstring 2は2つの異なるオブジェクトであり、string 1はnewメソッドによって作成され、string 2はvalueOf()メソッドによって返されるオブジェクトであるため、両者のアドレスが異なり、等式の結果がfalseとなる.
Stringのequals()メソッドは、次のようなソースコードで値を比較します.
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
Stringのequals()メソッドも文字列を1つずつ文字に分割して1つずつ比較することにより,比較は値でありstring 1.equals(string 2)の結果がtrueであることがわかる.