java split()方法

时间:2013-02-19 11:23:49

标签: java split

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

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

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

8 个答案:

答案 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