如何将字符串子串到Java中的第二个点(。)?

时间:2012-07-20 12:41:36

标签: java regex string substring

我有一个字符串,它有许多用点(.)分隔的段,如下所示:

  

codes.FIFA.buf.OT.1207.2206.idu


我想获得一个子字符串,直到第二个点,如codes.FIFA

如何直到第二个点的子串?

5 个答案:

答案 0 :(得分:15)

找到第一个点,然后从那里找到第二个点:

String input = "codes.FIFA.buf.OT.1207.2206.idu";
int dot1 = input.indexOf(".");
int dot2 = input.indexOf(".", dot1 + 1);
String substr = input.substring(0, dot2);

当然,如果找不到点,你可能想在那里添加错误检查。

答案 1 :(得分:4)

这样的事情可以解决问题:

String[] yourArray = yourDotString.split(".");
String firstTwoSubstrings = yourArray[0] + "." + yourArray[1];

变量firstTwoSubstrings将包含第二个“。”之前的所有内容。请注意,如果少于两个“。”,这将导致异常。在你的字符串中。

希望这有帮助!

答案 2 :(得分:3)

这似乎是最简单的解决方案:

String[] split = "codes.FIFA.buf.OT.1207.2206.idu".split("\\.");
System.out.println(split[0] + "." + split[1]);

答案 3 :(得分:3)

 Matcher m = Pattern.compile("^(.*?[.].*?)[.].*")
                    .matcher("codes.FIFA.buf.OT.1207.2206.idu");
 if (m.matches()) {
      return m.group(1);
 }

http://ideone.com/N6m8a

答案 4 :(得分:2)

我只是把它分成三部分再加入前两部分:

String[] parts = string.split("\\.", 3);
String front = parts[0]+"."+parts[1];
String back = parts[2];

如果它可能少于两个点,或者以点开头等,则可能需要进行一些错误检查。