0

我有一个 excel 表,我正在逐行解析 excel 表

我将在哪里得到这种格式的字符串

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

公共静态无效主要(字符串[]参数){

    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 回答