2 回答
TA贡献1966条经验 获得超4个赞
查看 StringTokenizer。您可以指定多个分隔符(第二个参数),并且可以指定是否返回此类分隔符(将第三个参数设置为 true 以返回空格、换行符、制表符等)。如果您不希望空格、制表符、换行符作为标记返回,请设置为 false(或者更好,不要有第三个参数)。
String testString = "this isn't\nright\t 'cause it ain't true";
StringTokenizer s = new StringTokenizer(testString," \n\t\r",true);
while (s.hasMoreTokens()) {
System.out.println("'" + s.nextToken() + "'");
}
输出:
'this'
' '
'isn't'
'
'
'right'
' '
' '
''cause'
' '
'it'
' '
'ain't'
' '
'true'
TA贡献1847条经验 获得超11个赞
我认为您需要做的是查看\b("word boundary") 的定义,然后查看\w ("word") 并将 a 重新定义'为单词的一部分。像这样的东西,尽管这取决于您是否也需要分隔符,或者您是否可以让正则表达式吞下它们。
public static void main( String[] args ) {
String test = "Don't fear the reaper.";
String regex = "[^a-zA-Z0-9']";
System.out.println( Arrays.toString( test.split( regex ) ) );
}
输出:
run:
[Don't, fear, the, reaper]
BUILD SUCCESSFUL (total time: 0 seconds)
添加回答
举报