我需要传递给java.lang.String.split()以使用所有空白字符(' ','\t', '\n'等)作为分隔符将字符串分割为子字符串数组的正则表达式模式是什么?
当前回答
你可以使用下面的语句用换行符分割字符串:
String textStr[] = yourString.split("\\r?\\n");
你可以使用下面的语句用空格分割字符串:
String textStr[] = yourString.split("\\s+");
其他回答
“\\s+”应该可以
String string = "Ram is going to school";
String[] arrayOfString = string.split("\\s+");
你可以使用下面的语句用换行符分割字符串:
String textStr[] = yourString.split("\\r?\\n");
你可以使用下面的语句用空格分割字符串:
String textStr[] = yourString.split("\\s+");
Apache Commons Lang有一个方法可以用空白字符作为分隔符分割字符串:
StringUtils.split("abc def")
http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html分裂(以)
这可能比正则表达式模式更容易使用。
要使用Unicode空白分隔字符串,需要使用
s.split("(?U)\\s+")
^^^^
(?U)内联嵌入标志选项相当于Pattern。UNICODE_CHARACTER_CLASS使\s的简写字符类匹配空白Unicode类别中的任何字符。
如果要使用空白分隔并将空白保留在结果数组中,请使用
s.split("(?U)(?<=\\s)(?=\\S)|(?<=\\S)(?=\\s)")
参见正则表达式演示。参见Java演示:
String s = "Hello\t World\u00A0»";
System.out.println(Arrays.toString(s.split("(?U)\\s+"))); // => [Hello, World, »]
System.out.println(Arrays.toString(s.split("(?U)(?<=\\s)(?=\\S)|(?<=\\S)(?=\\s)")));
// => [Hello, , World, , »]
推荐文章
- 增强的for循环中的Null检查
- c# vs Java Enum(适合c#新手)
- 如何在不强制转换的情况下将double转换为long ?
- for循环和for-each循环在性能上有区别吗?
- 你如何比较两个版本的字符串在Java?
- 为什么在Java和。net中不能修改字符串?
- java.util.Random真的那么随机吗?我怎么能生成52!(阶乘)可能的序列?
- ZoneOffset之间的区别是什么。UTC和ZoneId.of(“UTC”)?
- 类未找到:IntelliJ中的空测试套件
- 将JAR文件添加到Spark作业- Spark -submit
- REST API - dto还是不是?
- 如何将制表符转换为空格,反之亦然,在现有的文件
- JavaFX应用程序图标
- Java:强/软/弱/幻影引用的区别
- 在序列化和反序列化期间JSON属性的不同名称