반응형
따옴표 사이의 경우를 제외하고 Java의 공백에서 문자열 분할 (예 : \ "hello world \"를 하나의 토큰으로 취급)
이 질문에 이미 답변이 있습니다.
String
공백을 기준 으로을 분할하고 인용 된 부분 문자열을 한 단어로 사용하려면 어떻게해야합니까?
예:
Location "Welcome to india" Bangalore Channai "IT city" Mysore
다음과 ArrayList
같이 저장되어야합니다.
Location
Welcome to india
Bangalore
Channai
IT city
Mysore
방법은 다음과 같습니다.
String str = "Location \"Welcome to india\" Bangalore " +
"Channai \"IT city\" Mysore";
List<String> list = new ArrayList<String>();
Matcher m = Pattern.compile("([^\"]\\S*|\".+?\")\\s*").matcher(str);
while (m.find())
list.add(m.group(1)); // Add .replace("\"", "") to remove surrounding quotes.
System.out.println(list);
산출:
[Location, "Welcome to india", Bangalore, Channai, "IT city", Mysore]
정규 표현식은 간단히 말합니다.
[^"]
-다른 것으로 시작하는 토큰"
\S*
-0 개 이상의 공백이 아닌 문자가 뒤 따릅니다.- ...또는...
".+?"
-"
다른 때까지 - 기호 뒤에 무엇이든"
.
반응형
'program tip' 카테고리의 다른 글
XMLHttpRequest 모듈이 정의되지 않음 / 찾음 (0) | 2020.12.24 |
---|---|
ArrayList.toArray ()의 Java 제네릭 (0) | 2020.12.24 |
Wordpress를 Django 또는 Ruby on Rails와 같은 프레임 워크로 대체 할 수 있습니까? (0) | 2020.12.15 |
쉘 스크립트에서 여러 줄 출력 들여 쓰기 (0) | 2020.12.15 |
clojure / clojurescript의 개인 정의 (0) | 2020.12.15 |