我需要传递给java.lang.String.split()以使用所有空白字符(' ','\t', '\n'等)作为分隔符将字符串分割为子字符串数组的正则表达式模式是什么?
当前回答
你所需要的是使用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
希望,这可能会帮助你最好!!
其他回答
Apache Commons Lang有一个方法可以用空白字符作为分隔符分割字符串:
StringUtils.split("abc def")
http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html分裂(以)
这可能比正则表达式模式更容易使用。
你也可以有一个UniCode不间断空格xA0…
String[] elements = s.split("[\\s\\xA0]+"); //include uniCode non-breaking
因为它是一个正则表达式,我假设你也不会想要非字母数字字符,如逗号,点,等,可以被空格包围(例如。“one, two”应该给出[one][two]),它应该是:
myString.split(/[\s\W]+/)
String string = "Ram is going to school";
String[] arrayOfString = string.split("\\s+");
String str = "Hello World";
String res[] = str.split("\\s+");
推荐文章
- 到底是什么导致了堆栈溢出错误?
- 为什么Android工作室说“等待调试器”如果我不调试?
- 是否有可能更新一个本地化的故事板的字符串?
- 为什么字符串类型的默认值是null而不是空字符串?
- Java:路径vs文件
- 在Python中包装长行
- ExecutorService,如何等待所有任务完成
- Maven依赖Servlet 3.0 API?
- 如何在IntelliJ IDEA中添加目录到应用程序运行概要文件中的类路径?
- getter和setter是糟糕的设计吗?相互矛盾的建议
- Android room persistent: AppDatabase_Impl不存在
- Java的String[]在Kotlin中等价于什么?
- Intellij IDEA上的System.out.println()快捷方式
- 使用Spring RestTemplate获取JSON对象列表
- Spring JPA选择特定的列