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)
添加回答
舉報