我的字符串是
“成功参赛作品和参赛作品失败:{FAILED_ENTRIES = {}, SUCCESS_ENTRIES = {123 = 1509170142065114105}}“
这里我只想过滤 1509170142065114105 这个字符串在这里123可以是任何东西。
我该怎么办?
答案 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"));
}
<强>样本:强>
答案 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)
如果您的所有字符串格式相同,则可以使用lastIndexOf
和substring
。
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
解决方案应该会更好。