Я пытаюсь найти хороший способ заставить сканер использовать данный разделитель как токен. Например, я хотел бы разделить кусочек текста на цифры и несимметричные фрагменты, поэтому в идеале я бы просто установил разделитель на \D
и установил некоторый флаг как useDelimiterAsToken, но после краткого изучения API я не придумывая ничего. Сейчас я должен был прибегать к использованию комбинированного lookaheads/Утверждения назад для разделителей, что несколько болезненно:Java: использовать разделитель сканера как токен
scanner.useDelimiter("((?<=\\d)(?=\\D)|(?<=\\D)(?=\\d))");
Это выглядит для любого перехода от цифры к нецифре или наоборот. Есть ли более разумный способ сделать это?
См. Http://stackoverflow.com/questions/2206378/how-to-split-a-string-but-also-keep-the-delimiters, возможно, это помогает. –
проблема заключается в том, что если бы я сделал то же самое для '\ d' или' \ d + ', он будет совпадать со слишком большим количеством мест. – daltonb