在java中拆分一个字符串?

时间:2014-09-17 11:42:38

标签: java

我有String

10841-F-13930426-omme-salame--hamsare-geramiye-rasoule-khoda_split_005.png

我如何才能获得Last int

我需要获得005.png然后获得5(在java中)。

注意:Strings的长度不同。

5 个答案:

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

  1. 找到"。"字符串的字符索引。
  2. 从"向后迭代。"字符,直到你打一个非号码。
  3. 从数字字符开头到结尾的部分字符串(您找到的地方"。" char)。