我試圖找到一種很好的方法來讓掃描程序使用給定的分隔符作爲標記。例如,我想將一段文本拆分爲數字和非數字塊,所以理想情況下,我只需將分隔符設置爲\D
並設置一些標誌,如useDelimiterAsToken,但在簡要查看API後,我將沒有提出任何事情。現在,我不得不求助於使用組合向前看符號/ lookbehinds的分隔符,這是有點痛苦:Java:使用掃描器分隔符作爲標記
scanner.useDelimiter("((?<=\\d)(?=\\D)|(?<=\\D)(?=\\d))");
這看起來從一個數字,非數字或反之亦然任何過渡。有沒有更健全的方式來做到這一點?
請參閱:http://stackoverflow.com/questions/2206378/how-to-split-a-string-but-also-keep-the-delimiters,也許它有幫助。 – 2010-03-03 11:53:11
問題是,如果我爲'\ d'或'\ d +'做了同樣的事情,它會在太多的地方匹配 – daltonb 2010-03-03 12:16:58