0

私はExcelシートを持っています.Excelシートを1行ずつ解析しています

この形式で文字列を取得する場所

query at.mycollection ntoreturn:1 reslen:1833 nscanned:1  nquery: { like_symbol: "SC!JNJ" }  nreturned:1 bytes:1817etc...

出力が次のようになるように、文字列からnqueryのみを抽出しようとしています

nquery: { like_symbol: "SC!JNJ" }

私はこの方法を試しました

System.out.println(s.split("nscanned:1")[1]);

私が得た出力は

nquery: { like_symbol: "SC!JNJ" } nreturned:1 bytes:1817etc....

4

2 に答える 2

3

使用substring:

public static void main(String[] args) {

    String str = "query at.mycollection ntoreturn:1 reslen:1833 nscanned:1  nquery: { like_symbol: \"SC!JNJ\" }  nreturned:1 bytes:1817etc...";

    int index = str.indexOf("nquery:");
    int index2 = str.indexOf("nreturned:1");

    // some validation 
    if(index != -1 && index2 != -1 && index < index2){
        String str2 = str.substring(index, index2);

        str2 = str2.trim();

        System.out.println(str2);
    }
    else{
        System.err.println("Something wrong here");
    }
}

出力:nquery: { like_symbol: "SC!JNJ" }

実際、正規表現はより複雑なケースに適していますが、投稿したのと同じ構造であればsubstring 十分です

于 2013-09-07T14:54:38.713 に答える
0

indexOf とその後の部分文字列を試すことができます

于 2013-09-07T14:56:38.300 に答える