在这个例子中,我想从这2行中取出字符串“LOV_TYPE”
ObjMgrSqlLog Detail 4 2014-03-26 13:19:58 Bind variable 2: LOV_TYPE
ObjMgrSqlLog Detail 4 2014-03-26 13:19:58 Bind variable 3: AUDIT_LEVEL
我尝试使用subString(int startingIndex,int endingIndex)方法,我可以确定第一个参数是起点..但我无法确定终点。
答案 0 :(得分:1)
源:
String str = "ObjMgrSqlLog Detail 4 2014-03-26 13:19:58 Bind variable 2: LOV_TYPE";
您可以使用正则表达式
String out1 = str.replaceAll("^.*?.\\:.*[ ]", "");
或经典索引
int lastCh = str.lastIndexOf(":");
String out2 = str.substring(++lastCh).trim();
输出:
System.out.println(out1);
System.out.println(out2);
答案 1 :(得分:1)
您可以使用两个子字符串,一个在2:之后获取String,然后在下一个新行之前获取字符串。
string = string.substring(string.indexOf("2:") + 2);
string = string.substring(0, string.indexOf("ObjMgrSqlLog));
如果您需要摆脱两端的空格,则可以修剪字符串。
string = string.trim();
答案 2 :(得分:0)
如果使用str.substring(startingIndex),则将子字符串放在字符串的末尾。这似乎是你想要的。如果在字符串的末尾有额外的空格,则可以始终使用str.trim()来删除空格。
答案 3 :(得分:0)
使用子字符串和.length()来获取字符串长度的值。例如:
String original = "ObjMgrSqlLog Detail 4 2014-03-26 13:19:58 Bind variable 2: LOV_TYPE";
String newString = original.substring (62, original.length ());
System.out.print (newString);