java split()方法
我有一个字符串’123’(是的,它是我程序中的一个字符串)。 当我使用这种方法时,有人可以解释一下:
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); }
您也可以将它分配给循环中的数组。
str2.split("") ;
试试这个:分割字符串中的每个字符。 输出:
[, 1, 2, 3]
但它会返回一个空的第一个值。
str2.split("(?!^)");
输出:
[1, 2, 3]
传递给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); } }
尝试这个:
String str =“123”; String res = str.split(“”);
将返回以下结果:
1,2,3