我有一个字符串'123'(是的,它是我程序中的一个字符串)。当我使用这种方法时,有人可以解释一下:
String[] str1Array = str2.split(" ");
为什么我得到str1Array[0]='123'
而不是str1Array[0]=1
?
答案 0 :(得分:3)
str2.split("") ;
试试这个:分割字符串中的每个字符。 输出:
[, 1, 2, 3]
但它会返回一个空的第一个值。
str2.split("(?!^)");
输出:
[1, 2, 3]
答案 1 :(得分:3)
str2
不包含任何空格,因此split
会将str2
的全部内容复制到str1Array
的第一个索引。
你必须这样做:
String str2 = "1 2 3";
String[] str1Array = str2.split(" ");
或者,要查找str2中的每个字符,您可以这样做:
for (char ch : str2.toCharArray()){
System.out.println(ch);
}
您也可以将它分配给循环中的数组。
答案 2 :(得分:2)
传递给split()的正则表达式应该在字符串中匹配,以便在字符串中找到匹配项的位置拆分字符串。在这里你传递的是“123”中没有的,因此没有发生分裂。
答案 3 :(得分:1)
因为String
中没有空格。
如果您想要单个字符,请尝试char[] characters = str2.toCharArray()
答案 4 :(得分:1)
简单...你试图按空格分割字符串,在你的字符串“123”中,没有空格
答案 5 :(得分:1)
这是因为split()
方法根据作为参数给出的字符将字符串拆分。
我们删除分割字符,并在每次找到分割字符时形成一个新的字符串。
String[] strs = "123".split(" ");
字符串"123"
没有字符" "
(空格),因此无法拆分。返回只是数组中的一个项目 - { "123" }
。
答案 6 :(得分:1)
要执行“拆分”,您必须使用分隔符,在这种情况下,在每个数字之间插入“,”
public static void main(String[] args) {
String[] list = "123456".replaceAll("(\\d)", ",$1").substring(1)
.split(",");
for (String string : list) {
System.out.println(string);
}
}
答案 7 :(得分:0)
试试这个:
String str =“123”; String res = str.split(“”);
将返回以下结果:
1,2,3