Java:单行子字符串

时间:2014-03-27 21:36:55

标签: java string

我需要将“2:”之后的字符串子串到字符串末尾,因为它是一个可更改的字符串:

在这个例子中,我想从这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)方法,我可以确定第一个参数是起点..但我无法确定终点。

4 个答案:

答案 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);