ベクトルのベクトルがあります(指定された長さではありません)。これで、検索する文字列と、フォローアップとプレアップを見つけたいと思います。私はこれをこれまで試しました。mainstr は、文字列に変換された私のベクトルです。
String mainstr = "[[data link control], [communication, []], [computer, [applications of computer, number of computer]], [world wide web], [lesson, [covered in lesson]], [access to remote], [marketing and sale], [electronic fund transfer], [network, [network of network, wide area network, communication network, computer network, [area network, [local area network, metropolitan area network]]]]]";
String search = "communication network";
if (mainstr.contains(search)) {
if (mainstr.charAt(mainstr.indexOf(search) + search.length()) == ']' && mainstr.charAt(mainstr.indexOf(search) - 2) == '[') {
System.out.println("single term");
} else {
int indexSearch = str.indexOf(search) + search.length();
String followers = str.substring(indexSearch, str.length());
if (!followers.equals("")) {
System.out.println("No FOLLOWERS");
} else {
System.out.println("followers = " + followers.substring(0, followers.indexOf("]")));
}
if (mainstr.charAt(mainstr.indexOf(search) - 4) == ']') {
System.out.println("No pre found");
} else {
System.out.println("preups are present");
String preup = mainstr.split(search)[0].substring(0, mainstr.split(search)[0].length() - 1);
String finalPreup = preup.substring(preup.lastIndexOf("[") + 1, preup.lastIndexOf(","));
System.out.println("final : " + finalPreup);
}
System.out.println("found...");
}
} else {
System.out.println("Not Found");
}
この場合、出力は次のようになります-
No FOLLOWERS
preups are present
final : network of network, wide area network
found...
このベクトルを文字列に変換してから検索を実行しましたが、一部の文字列に対して正しい出力が得られ、この特定のケースでは目的の出力が得られません。ベクトルに存在する任意の文字列に対して機能する一般化されたコードに興味がありました。前もって感謝します。
更新::
実際には、これはベクトルのベクトルに入れた私のツリー構造です。
-data link control
-communication
-computer
- applications of computer
-number of computer
-world wide web
-lesson
-covered in lesson
-access to remote
-marketing and sale
-electronic fund transfer
-network
-network of network
-wide area network
-communication network
-computer network
-area network
-local area network
-metropolitan area network
だから私は検索がツリーごとになることを望みます。たとえば、 search=="広域ネットワーク" の場合、そのフォロワー=フォロワーなし は、下に階層がないため、内部に要素がないことを意味します。およびその Pre up=network は、ヘッド ノード ネットワークのサブ要素であるためです。
前もって感謝します。