0

文字列から特定の部分文字列を抽出したい:

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の前の文字列にある場合、これは機能しますが、「実際のデータ」はソートされていません。

どうすればこれを修正できますか?

4

2 に答える 2