스캐너가 주어진 구분 기호를 토큰으로 사용하게하는 좋은 방법을 찾으려고합니다. 예를 들어, 텍스트를 숫자와 숫자가 아닌 덩어리로 나눠서 처리하고 싶습니다. 따라서 이상적으로는 구분자를 \D
으로 설정하고 useDelimiterAsToken과 같은 플래그를 설정해야합니다. 그러나 API를 잠시 살펴본 후에는 아무 것도 나오지 않아. 지금 내가 다소 고통스러운 구분 기호에 대한 결합 lookaheads/lookbehinds를 사용에 의존 했어 :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