我有一张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字节:1817etc ....
答案 0 :(得分: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
就足够了
答案 1 :(得分:0)
您可以尝试使用indexOf和随后的子串