String パラメーターを受け取り、パラメーター名と値の 2 次元 String 配列を返すメソッドを作成しようとしています。
protected final String[][] setParams (String parms) {
String[][] params;
int i = 0;
Pattern p = Pattern.compile(NEED_REGEX_HERE);
Matcher m = p.matcher(parms);
params = String[m.groupCount()][2];
while (m.find()) {
params[i][0] = m.group(i).subString(0,m.group(i).indexOf('='));
params[i][1] = m.group(i).subString(m.group(i).indexOf('='));
i++;
}
return params;
}
入力の例は次のとおりです (引用符内):
"Name=Ryan;\;Name=John"
"Name=Ryan;Name=John"
"Name=Ryan"
"Name=Ryan;Index=1"
だから「;」はリスト区切り記号であり、代入演算子「=」は有効なパラメータを示します。「\」は捨て値です。基本的に、これを可能にする正規表現を探しています。または、誰かが提供できる場合は、よりエレガントなソリューションを探しています。