我有一个字符串'123'(是的,它是我程序中的一个字符串)。谁能解释一下,当我使用这种方法时:
String[] str1Array = str2.split(" ");
为什么我得到str1Array[0]='123'
而不是str1Array[0]=1
?
str2.split("") ;
试试这个:拆分字符串中的每个字符。输出:
[, 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' 中找不到的“”,因此不会发生拆分。
因为你的String
. 如果您想要单个字符,请尝试char[] characters = str2.toCharArray()
很简单...您正在尝试按空格分割字符串,并且在字符串“123”中没有空格
这是因为该split()
方法根据作为参数给出的字符从字面上拆分字符串。
每次找到拆分字符时,我们都会删除拆分字符并形成一个新的字符串。
String[] strs = "123".split(" ");
字符串"123"
没有字符" "
(空格),因此无法拆分。所以返回的只是数组中的一个项目 - { "123" }
。
要进行“拆分”,您必须使用分隔符,在这种情况下,在每个数字之间插入一个“,”
public static void main(String[] args) {
String[] list = "123456".replaceAll("(\\d)", ",$1").substring(1)
.split(",");
for (String string : list) {
System.out.println(string);
}
}
试试这个:
字符串 str = "123"; 字符串 res = str.split("");
将返回以下结果:
1,2,3