Answers:
某些东西
myString.split("\\s+");
这会将所有空白分组为分隔符。
因此,如果我有字符串:
"Hello[space][tab]World"
这将产生字符串"Hello"
,"World"
并省略[space]
和之间的空白[tab]
。
正如VonC所指出的那样,应将反斜杠转义,因为Java首先会尝试将字符串转义为特殊字符,然后将其发送进行解析。您想要的是字面量"\s"
,这意味着您需要通过"\\s"
。可能会造成一些混乱。
在\\s
相当于[ \\t\\n\\x0B\\f\\r]
。
trim()
首先:trim().split("\\s++")
-否则,例如,拆分abc将首先发出两个空字符串。
"\\\\s"
?
在大多数regex方言中,可以使用一组方便的字符摘要来进行此类操作-这些是值得记住的好方法:
\w
-匹配任何单词字符。
\W
-匹配任何非单词字符。
\s
-匹配任何空格字符。
\S
-匹配除空格字符以外的任何字符。
\d
-匹配任何数字。
\D
-匹配除数字以外的任何内容。
搜索“ Regex备忘单”应该为您提供很多有用的摘要。
为了使用Javascript进行此工作,我必须执行以下操作:
myString.split(/\s+/g)
另外,您可能还有一个UniCode不间断空格xA0 ...
String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking
Apache Commons Lang有一种使用空格字符作为分隔符的字符串分割方法:
StringUtils.split("abc def")
这可能比正则表达式模式更易于使用。
您可以使用以下语句按换行符分割字符串:
String textStr[] = yourString.split("\\r?\\n");
您可以使用以下语句按空格分隔字符串:
String textStr[] = yourString.split("\\s+");
学习这段代码..祝你好运
import java.util.*;
class Demo{
public static void main(String args[]){
Scanner input = new Scanner(System.in);
System.out.print("Input String : ");
String s1 = input.nextLine();
String[] tokens = s1.split("[\\s\\xA0]+");
System.out.println(tokens.length);
for(String s : tokens){
System.out.println(s);
}
}
}