问题
我需要用空格分割我的String。为此,我试过:
str = "Hello I'm your String";
String[] splited = str.split(" ");
但它似乎不起作用。
#1 热门回答(436 赞)
你有什么应该工作。但是,如果提供的空格是默认的......其他的东西?你可以使用空格正则表达式:
str = "Hello I'm your String";
String[] splited = str.split("\\s+");
这将导致任意数量的连续空格将你的字符串拆分为标记。
作为旁注,我不确定"分裂"是一个词:)我相信作为分裂的受害者的状态也是"分裂"。这是一个棘手的语法事情:-)不要试图挑剔,只是想我会传递它!
#2 热门回答(45 赞)
虽然接受的答案是好的,但请注意,如果输入字符串以空格开头,则最终会出现一个前导空字符串。例如,用:
String str = " Hello I'm your String";
String[] splitStr = str.split("\\s+");
结果将是:
splitStr[0] == "";
splitStr[1] == "Hello";
splitStr[2] == "I'm";
splitStr[3] == "Your";
splitStr[4] == "String";
因此,你可能希望在拆分之前修剪字符串:
String str = " Hello I'm your String";
String[] splitStr = str.trim().split("\\s+");
#3 热门回答(23 赞)
我确实认为在str.split括号中加上正则表达式可以解决这个问题。 Java String.split()方法基于正则表达式,因此你需要的是:
str = "Hello I'm your String";
String[] splitStr = str.split("\\s+");