我有一个字符串'123'(是的,它是我的程序中的一个字符串)。任何人都可以解释,当我用这个方法:java split()方法
String[] str1Array = str2.split(" ");
为什么我str1Array[0]='123'
而非str1Array[0]=1
?
我有一个字符串'123'(是的,它是我的程序中的一个字符串)。任何人都可以解释,当我用这个方法:java split()方法
String[] str1Array = str2.split(" ");
为什么我str1Array[0]='123'
而非str1Array[0]=1
?
str2
不包含任何空格,因此split
拷贝str2
的全部内容的str1Array
第一索引。
你必须做的:
String str2 = "1 2 3";
String[] str1Array = str2.split(" ");
另外,为了找到在str2中的每一个字符,你可以这样做:
for (char ch : str2.toCharArray()){
System.out.println(ch);
}
你也可以把它分配给在循环数组。
因为您的String
中没有空格。 如果你想单字符,尝试char[] characters = str2.toCharArray()
简单......你试图通过空间和您的字符串分割字符串“123”,没有空间
你知道,String [] str1Array = str2.split(“”);它也行不通( – Leo 2013-02-19 11:26:29
传递给split()的正则表达式应该在字符串中有一个匹配项,以便它将在字符串中找到匹配项的位置拆分字符串。这里你传递的是“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”; String res = str。分裂(””);
将返回以下结果:
1,2,3
简单的问题。淹没答案:P – LGAP 2013-02-19 11:26:18
每个人都想要蛋糕上的樱桃:P – SudoRahul 2013-02-19 11:26:52
如果下面的答案都不起作用,那么您的程序中可能有一个不是“123”的字符串。在这里和那里你可能会忽略一些空间。 – Sanchit 2013-02-19 11:42:54