String
スペースに基づいて分割し、引用符で囲まれた部分文字列を 1 つの単語として扱うにはどうすればよいですか?
例:
Location "Welcome to india" Bangalore Channai "IT city" Mysore
ArrayList
次のように保存する必要があります
Location
Welcome to india
Bangalore
Channai
IT city
Mysore
ベストアンサー1
方法は次のとおりです。
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個以上のスペース以外の文字が続く- ...または...
".+?"
-"
記号の後に何かが続き、別の記号が現れるまで続きます"
。