Java 我想过滤掉字符串中的最后一个数字
我的绳子是 “成功条目和失败条目:{Failed_Entries={}, 成功{123=1509170142065114105}” 这里我只想过滤掉1509170142065114105这里的这个字符串123可以是任何东西 如何操作?您可以使用正则表达式Java 我想过滤掉字符串中的最后一个数字,java,Java,我的绳子是 “成功条目和失败条目:{Failed_Entries={}, 成功{123=1509170142065114105}” 这里我只想过滤掉1509170142065114105这里的这个字符串123可以是任何东西 如何操作?您可以使用正则表达式*(?:\\D |^)(\\D+).*获取字符串中的最后一个数字 String s = "{FAILED_ENTRIES={}, SUCCESS_ENTRIES={123=1509170142065114105}}"; int l
*(?:\\D |^)(\\D+).*
获取字符串中的最后一个数字
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);
使用:
public static void main(String[] args) {
String s = "{FAILED_ENTRIES={}, SUCCESS_ENTRIES={123=1509170142065114105}}";
System.out.println(s.replaceAll(".*(?:\\D|^)(\\d+).*", "$1"));
}
1509170142065114105
输出:
public static void main(String[] args) {
String s = "{FAILED_ENTRIES={}, SUCCESS_ENTRIES={123=1509170142065114105}}";
System.out.println(s.replaceAll(".*(?:\\D|^)(\\d+).*", "$1"));
}
1509170142065114105
演示:
public static void main(String[] args) {
String s = "{FAILED_ENTRIES={}, SUCCESS_ENTRIES={123=1509170142065114105}}";
System.out.println(s.replaceAll(".*(?:\\D|^)(\\d+).*", "$1"));
}
1509170142065114105
.正则表达式适用于您
public static void main(String args[]) {
String s = "{FAILED_ENTRIES={}, SUCCESS_ENTRIES={123=1509170142065114105}}";
System.out.println(s.replaceAll(".*=(\\d+).*", "$1"));
}
O/p:
如果所有字符串的格式相同,则可以使用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
如果你的sting格式可以不同,那么@Jordi Castilla发布的regex
解决方案应该更好。至少展示一下你的做法,这似乎不是一个严格的逻辑,展示一下你的代码你可以为我推荐这个字符串“成功条目和失败条目:{Failed_Entries={},Success_Entries={123=1509180522720153332,124=1509181140480153332}“@KamleshKanazariya预期的输出是什么?.123=?或124=?我想从这个String@KamleshKanazariya-试试这个==>System.out.println(s.replaceAll(“*?=(\\d+).*”,“$1”));
我只能看到一个成功条目1509180522720153332,而不是第二个1509181140480153332。我希望两个成功条目都出现在字符串列表中