我想过滤掉字符串中的最后一个数字

时间:2015-09-18 09:53:35

标签: java

我的字符串是

  

“成功参赛作品和参赛作品失败:{FAILED_ENTRIES = {},   SUCCESS_ENTRIES = {123 = 1509170142065114105}}“

这里我只想过滤 1509170142065114105 这个字符串在这里123可以是任何东西。

我该怎么办?

3 个答案:

答案 0 :(得分:1)

您可以使用正则表达式try{ if(ASCOGSRS.next()){ //System.out.println("Open Peiod is :"+ASCOGSRS.getString(1)); HttpSession OpenPeriodsession=request.getSession(); OpenPeriodsession.setAttribute("ASCOGSCurrentOpenPeriod", ASCOGSRS.getString(1)); PrintWriter out =response.getWriter(); String ASCOGSOpenPeriod=ASCOGSRS.getString(1); out.print(" The Current Open Period is: "+ASCOGSOpenPeriod); } } 获取.*(?:\\D|^)(\\d+).*中的最后一个数字。

使用:

String

<强>输出:

public static void main(String[] args) {
    String s = "{FAILED_ENTRIES={}, SUCCESS_ENTRIES={123=1509170142065114105}}";
    System.out.println(s.replaceAll(".*(?:\\D|^)(\\d+).*", "$1"));
}

<强>样本:

Check here a working demo

答案 1 :(得分:0)

正则表达式适合你。

public static void main(String args[]) {
    String s = "{FAILED_ENTRIES={}, SUCCESS_ENTRIES={123=1509170142065114105}}";
    System.out.println(s.replaceAll(".*=(\\d+).*", "$1"));
}

O / P:

1509170142065114105

答案 2 :(得分:0)

如果您的所有字符串格式相同,则可以使用lastIndexOfsubstring

    String s = "{FAILED_ENTRIES={}, SUCCESS_ENTRIES={123=1509170142065114105}}";
    int lastEqualIndex = s.lastIndexOf("=");

    String lastNumber = s.substring(lastEqualIndex + 1, s.length() - 2);
    System.out.println(lastNumber);

输出1509170142065114105

如果您的刺痛格式有所不同,那么@Jordi Castilla发布的regex解决方案应该会更好。