我需要传递给java.lang.String.split()以使用所有空白字符(' ','\t', '\n'等)作为分隔符将字符串分割为子字符串数组的正则表达式模式是什么?
当前回答
String str = "Hello World";
String res[] = str.split("\\s+");
其他回答
String str = "Hello World";
String res[] = str.split("\\s+");
你所需要的是使用Java Ragex引擎的一个特殊字符来分割,
那就是- WhiteSpace Character
\d表示数字:[0-9] \D表示非数字:[^0-9] \s表示一个空白字符,包括[\t\n\x0B\f\r] \S表示非空格字符,如[^\ S] \v表示垂直空格字符[\n\x0B\f\r\x85\u2028\u2029] \V表示一个非垂直空格字符,如[^\ V] \w表示单词字符[a- za - z_0 -9] \W表示非单词字符,如[^\ W]
在这里,要记住的关键点是,小字母字符\s表示所有类型的空白,包括单个空格[]、制表符[]或任何类似的空格。
所以,如果你尝试一下会像这样
String theString = "Java<a space><a tab>Programming"
String []allParts = theString.split("\\s+");
您将得到所需的输出。
一些非常有用的链接:
Split()方法 Regexr split-Java 11 RegularExpInfo PatternClass
希望,这可能会帮助你最好!!
之类的东西
myString.split("\\s+");
这将所有空格分组为分隔符。
如果我有一个字符串:
"Hello[space character][tab character]World"
这将产生字符串“Hello”和“World”,并省略[空格]和[制表符]之间的空白。
正如VonC指出的,反斜杠应该转义,因为Java首先会尝试将字符串转义为一个特殊字符,并将其发送给解析。你想要的是字面上的“\s”,这意味着你需要传递“\\s”。这可能会让人有点困惑。
s相当于[\\t\\n\\x0B\\f\ r]。
你可以使用下面的语句用换行符分割字符串:
String textStr[] = yourString.split("\\r?\\n");
你可以使用下面的语句用空格分割字符串:
String textStr[] = yourString.split("\\s+");
String string = "Ram is going to school";
String[] arrayOfString = string.split("\\s+");
推荐文章
- 如果我同步了同一个类上的两个方法,它们能同时运行吗?
- 如何减去X天从一个日期对象在Java?
- Java标识符中的“连接字符”是什么?
- 一对多、多对一、多对多的区别?
- 从枚举中选择一个随机值?
- 如何从URL获取参数与JSP
- 如何在Eclipse中生成Javadoc注释?
- 我如何在c++中创建一个随机的字母数字字符串?
- 找到java类从哪里加载
- 从集合中随机选取一个元素
- 为什么x == (x = y)和(x = y) == x不一样?
- 什么Java 8流。收集等价物可在标准Kotlin库?
- 如何使用JavaScript大写字符串中每个单词的第一个字母?
- 等待未来的名单
- 如何检查JSON键是否存在?