0

我有一个字符串'123'(是的,它是我程序中的一个字符串)。谁能解释一下,当我使用这种方法时:

String[] str1Array =  str2.split(" ");

为什么我得到str1Array[0]='123'而不是str1Array[0]=1

4

8 回答 8

3
str2.split("") ;

试试这个:拆分字符串中的每个字符。输出:

[, 1, 2, 3]

但它会返回一个空的第一个值。

str2.split("(?!^)");

输出 :

[1, 2, 3]
于 2013-02-19T11:25:50.887 回答
3

str2不包含任何空格,因此split将 的全部内容复制str2到 的第一个索引str1Array

你必须这样做:

 String str2 = "1 2 3";
 String[] str1Array =  str2.split(" ");

或者,要查找 str2 中的每个字符,您可以执行以下操作:

for (char ch : str2.toCharArray()){
    System.out.println(ch);
}

您也可以将其分配给循环中的数组。

于 2013-02-19T11:26:30.513 回答
2

传递给 split() 的正则表达式应该在字符串中有一个匹配项,以便它将在字符串中找到匹配项的地方拆分字符串。在这里,您正在传递在 '123' 中找不到的“”,因此不会发生拆分。

于 2013-02-19T11:27:21.150 回答
1

因为你的String. 如果您想要单个字符,请尝试char[] characters = str2.toCharArray()

于 2013-02-19T11:25:43.177 回答
1

很简单...您正在尝试按空格分割字符串,并且在字符串“123”中没有空格

于 2013-02-19T11:25:44.740 回答
1

这是因为该split()方法根据作为参数给出的字符从字面上拆分字符串。

每次找到拆分字符时,我们都会删除拆分字符并形成一个新的字符串。

String[] strs =  "123".split(" ");

字符串"123"没有字符" "(空格),因此无法拆分。所以返回的只是数组中的一个项目 - { "123" }

于 2013-02-19T11:27:45.463 回答
1

要进行“拆分”,您必须使用分隔符,在这种情况下,在每个数字之间插入一个“,”

    public static void main(String[] args) {
    String[] list = "123456".replaceAll("(\\d)", ",$1").substring(1)
            .split(",");
    for (String string : list) {
        System.out.println(string);
    }
}
于 2013-02-19T11:40:58.833 回答
0

试试这个:

字符串 str = "123"; 字符串 res = str.split("");

将返回以下结果:

1,2,3

于 2015-03-24T09:27:38.957 回答