java截取字符串问题,多个空格截取

字符串格式如下

2018-01-15 11:02 10240 10240 360浏览器\360se6\User Data\Default\apps\LoginAssis\assis2.db
2018-01-15 11:02 0 0 360浏览器\360se6\User Data\Default\apps\LoginAssis\assis2.db-journal
2018-03-08 15:17 787 787 360浏览器\360se6\User Data\Default\apps\plugin_icons
需要截取文本最后一个属性值,虽然中间有多个空格可以用line.split("\s+")分割来截取,但是会后一个属性值中间也有空格,比如User Data,如果以空格就会把最后一个属性值分两个了,请问各位大神如何处理

用Apache Commons Lang3的StringUtils类

 import org.apache.commons.lang3.StringUtils;
 //... 省略
 String[] ss = StringUtils.splitByWholeSeparator(line, " ", 5);

line就是那一行String
最后那个参数5就是你想要split的份数, 它split到那么多份时就不继续了

从你提供的数据来看,最后一个属性值有特别之处:空格前后都是字母,思路如下:使用正则匹配字母结束和开头的空格,把这部分空格先替换成一个特殊字符,比如:*;在通过普通的空格截取,最后把*换成空格

String[] ss = StringUtils.splitByWholeSeparator(line, " ", 5);