4

.次のように、ドット ( )で区切られた多くのセグメントを持つ文字列があります。

コード.FIFA.buf.OT.1207.2206.idu


のように、2 番目のドットまでのみ部分文字列を取得したいcodes.FIFA

2番目のドットまで部分文字列を作成する方法は?

4

5 に答える 5

15

最初のドットを見つけて、そこから 2 番目のドットを見つけます。

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);

もちろん、ドットが見つからない場合は、そこにエラー チェックを追加することもできます。

于 2012-07-20T12:45:09.620 に答える
4

このような何かがトリックを行います:

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

変数 firstTwoSubstrings には、2 番目の "." より前のすべてが含まれます。"." が 2 つ未満の場合、例外が発生することに注意してください。あなたの文字列で。

お役に立てれば!

于 2012-07-20T12:47:01.450 に答える
3

これは最も簡単な解決策のようです:

String[] split = "codes.FIFA.buf.OT.1207.2206.idu".split("\\.");
System.out.println(split[0] + "." + split[1]);
于 2012-07-20T12:44:44.680 に答える
3
 Matcher m = Pattern.compile("^(.*?[.].*?)[.].*")
                    .matcher("codes.FIFA.buf.OT.1207.2206.idu");
 if (m.matches()) {
      return m.group(1);
 }

http://ideone.com/N6m8a

于 2012-07-20T12:50:22.090 に答える
2

これを 3 つの部分に分割し、最初の 2 つを再び結合します。

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

ドットが 2 つ未満であったり、ドットで始まったりする場合は、エラー チェックが必要になる場合があります。

于 2012-07-20T12:45:12.507 に答える