文字列から特定の部分文字列を抽出したい:
String source = "info1 info1ContentA info1ContentB info3 info3ContentA info3ContentB"+
"info2 info2ContentA";
結果は次のようになります。
String info1 ="info1ContentA info1ContentB";
String info2 ="info2ContentA";
String info3 ="info3ContentA info3ContentB";
私にとって、情報を抽出することは非常に困難です。なぜなら、"info" の後に 1 つ、2 つ、またはそれ以上のコンテンツ情報が含まれることがあるからです。発生する別の問題は、info1、info2 などの順序がソートされておらず、「実際のデータ」に昇順の数値が含まれていないことです。
私の最初のアイデアは、info1、info2、info3 などを ArrayList に追加することでした。
private ArrayList<String> arr = new ArrayList<String>();
arr.add("info1");
arr.add("info2");
arr.add("info3");
ここで、Apache Commons ( https://mvnrepository.com/artifact/org.apache.commons/commons-lang3/3.4 )から StringUtils.substringBetween() メソッドを使用して部分文字列を抽出します。
String result = StringUtils.substringBetween(source, arr.get(0), arr.get(1));
info1がinfo2の前の文字列にある場合、これは機能しますが、「実際のデータ」はソートされていません。
どうすればこれを修正できますか?