区切り記号付きのキー文字列に基づいてテキスト フィールドの値を見つけるための効率的な Java ソリューション/アルゴリズムはありますか?
例:
ルール:
I. キー: ユーザー名 開始区切り文字: ; 終了区切り文字: ;
キー (この場合はユーザー名) が続き、値が開始区切り文字と終了区切り文字 (この場合は ;) の間にある値を見つける必要があります。
Ⅱ.キー: 開始区切り文字: ; 終了区切り文字: ;
サンプル入力:
ユーザー名が ;suren; のユーザー 2013 年 5 月 2 日木曜日の午後 2 時 30 分にシステムにログインしました。
結果: I. ユーザー名 - スレン II. 2013 年 5 月 2 日(木)午後 2 時 30 分
これまでに試したことの例を次に示します。
String key = "username ";
String startDelimiter = ";";
String endDelimiter = ";";
String computedPattern = "(\\w+)" + key + startDelimiter + "(\\w+)" + endDelimiter;
Pattern p = Pattern.compile(computedPattern);
Matcher m = p.matcher(
"A user with username ;suren; logged into the system on ;Thu May 2, 2013 2:30pm;");
while( m.find() ) {
System.out.println( "Key:" + m.group(1) + "Value:" + m.group(2) );
}