2017-09-07 26 views
-1

"[" a "、" b "]"のような文字列形式の文字列のリストとして値を取得しています。私はそれらを文字列のリストに変換したいと思います。先頭と末尾の中カッコを取り除いてカンマで区切ってこれを行うことができます。しかしここでの問題は、文字列のリストに変換したい "a"という単一の文字列と同じ値を受け取る可能性があることです。それで、これを一般化する方法はありますか?リストの文字列をJavaの文字列のリストに変換する

+0

は問題ではありません。その戦略の大きな問題は、引用符の間に区切り文字がある場合です。 –

+0

JSON配列の解析方法を聞いているようですね。 – shmosel

+0

各要素を壊して、各要素を 'Set'に追加して、ユニークな値を得るようにしてください。 –

答えて

0

可能な解決策の1つはRegexです。

あなたの式は次のようになります。"(.+?)"

.+?は、(行末を除く)任意の文字に一致し

+?数量詞 - など数回としてと無制限回の間で一致、可能な限り、必要に応じて拡大する。


String tokens = "[\"a\", \"b,c\", \"test\"]"; 
String pattern = "\"(.+?)\""; 

Pattern p = Pattern.compile(pattern); 
Matcher m = p.matcher(tokens); 

List<String> tokenList = new ArrayList<String>(); 
while (m.find()) { 
    tokenList.add(m.group()); 
} 

System.out.println(tokenList); 
0

次のことを一般化することができます String str = "\"[\"a\",\"b\"]\""; String[] splitStrs = str.split("\"",7); System.out.println(splitStrs[0]+" "+splitStrs[1]+" "+splitStrs[2]+" "+splitStrs[3]+" "+splitStrs[4]+" "+splitStrs[5]+" "+splitStrs[6]); マイ出力

[a、b]は、区切り文字なしの文字列を分割する

+0

区切り文字なしで文字列を分割することは問題ありません。その戦略の大きな問題は、引用符の間に区切り文字がある場合です。 – Jay