文字列 '123' があります (はい、これは私のプログラムの文字列です)。私がこの方法を使用するとき、誰でも説明できますか:
String[] str1Array = str2.split(" ");
なぜ私はではstr1Array[0]='123'
なく得たのstr1Array[0]=1
ですか?
str2.split("") ;
これを試してください: string 内の各文字を分割します。出力:
[, 1, 2, 3]
ただし、空の最初の値が返されます。
str2.split("(?!^)");
出力:
[1, 2, 3]
str2
にはスペースが含まれていないためsplit
、 の内容全体str2
が の最初のインデックスにコピーされstr1Array
ます。
あなたはしなければならないでしょう:
String str2 = "1 2 3";
String[] str1Array = str2.split(" ");
あるいは、str2 内のすべての文字を検索するには、次のようにします。
for (char ch : str2.toCharArray()){
System.out.println(ch);
}
ループ内の配列に割り当てることもできます。
split() に渡す正規表現は、文字列内で一致が見つかった場所で文字列を分割するように、文字列内で一致する必要があります。ここでは、'123' にはない " " を渡しているため、分割は発生しません。
「分割」を行うには、区切り文字を使用する必要があります。この場合、各数値の間に「、」を挿入します。
public static void main(String[] args) {
String[] list = "123456".replaceAll("(\\d)", ",$1").substring(1)
.split(",");
for (String string : list) {
System.out.println(string);
}
}
にスペースがないためString
です。単一の文字が必要な場合は、試してくださいchar[] characters = str2.toCharArray()
シンプル...文字列をスペースで分割しようとしていますが、文字列「123」にはスペースがありません
これは、split()
メソッドがパラメーターとして指定された文字に基づいて文字通り文字列を分割するためです。
分割文字が見つかるたびに、分割文字を削除して新しい String を形成します。
String[] strs = "123".split(" ");
String"123"
には文字" "
(スペース) がないため、分割できません。したがって、返されるのは配列内の単一の項目です - { "123" }
。