我有String
:
10841-F-13930426-omme-salame--hamsare-geramiye-rasoule-khoda_split_005.png
我如何才能获得Last int
。
我需要获得005.png
然后获得5(在java中)。
注意:Strings
的长度不同。
答案 0 :(得分:3)
我们可以在Java中使用substring方法,它将获得超过给定整数的字符串的一部分。
说我们有:
String str = "HelloWorld";
我们只希望展示“世界”。部分然后我们可以使用:
str.substring(5);
因为在你的字符串中你想要最后一个" _"之后的字符。我们可以使用' lastIndexOf' Java中的方法:
str.lastIndexOf("_");
' lastIndexOf' Java中的方法将查找字符串中最后一个_的字符数。然后因为我们不想在输出字符串中包含_,我们只需+ 1
以下是将两个子字符串组合在一起后如何执行此操作的示例。和' lastIndexOf'方法在一起:
String str = "10841-F-13930426-omme-salame--hamsare-geramiye-rasoule-khoda_split_005.png";
System.out.println(str.substring(str.lastIndexOf("_") + 1));
输出:
005.png
如果您仍然遇到麻烦,请告诉我们。)
答案 1 :(得分:2)
我建议您应该执行以下操作:
String str = "10841-F-13930426-omme-salame--hamsare-geramiye-rasoule-khoda_split_005.png";
String last = str.substring(str.lastIndexOf("_") + 1);
String[] lastParts = last.split("\\.");
int integetPart = Integer.valueOf(lastParts[0]);
它可能不是最花哨的方式,但它有效。
答案 2 :(得分:1)
String str = "qwerty1qwerty2";
str = str.replaceAll("[^0-9]+", " ");
System.out.println(Arrays.asList(str.trim().split(" ")));
输出:
[1, 2]
[编辑]
如果你想包括 - a.e减去,添加 - ?:
String str = "qwerty-1qwerty-2 455 f0gfg 4";
str = str.replaceAll("[^-?0-9]+", " ");
System.out.println(Arrays.asList(str.trim().split(" ")));
输出:
[-1, -2, 455, 0, 4]
答案 3 :(得分:1)
尝试以下方法。这将为您提供5
作为输出
String s = "10841-F-13930426-omme-salame--hamsare-geramiye-rasoule-khoda_split_005.png";
System.out.println(Long.valueOf(s.substring(s.lastIndexOf("_")+1).split("\\.")[0]));
答案 4 :(得分:0)