1

簡単な質問: 区切り文字としてピリオド (.) を使用して IP アドレス (例: 192.168.0.1) を分割したいと考えています。私はそれを正しく理解できないようです。さまざまなシナリオを実行して、脳の機能不全であるかどうかを確認してみましたが、ピリオドの代わりに数字の間にスペースを入れると、すべてがうまくいくようです. どうすれば成功しますか?

これは、実行に使用しているスクリプトの一部です。

String ipAddress = "10.0.0.2";
String[] split = ipAddress.split(".");
//It's supposed to split into four parts and each part needs to be assigned to a var
String Part1 = split[0];
String Part2 = split[1];
String Part3 = split[2];
String Part4 = split[3];
//Just to make sure that it worked...
System.out.println(Part1 + " " + Part2 + " " + Part3 + " " + Part4);

私の知識に疑問を呈する前に、私は自分で新しい Java 関数を学んでいますが、時々それを機能させることができません。

素晴らしい滞在!

4

4 に答える 4

1

試す

String[] split = ipAddress.split("\\.");

split()メソッドは文字列ではなく正規表現を使用し、DOT正規表現で特別な意味を持ちます。したがって、二重スラッシュでエスケープする必要があります。

または、Pattern.quoteを使用できます

String[] split = ipAddress.split(Pattern.quote("."));
于 2013-04-06T13:10:47.980 に答える
1

これを試して

  String parts[] = ipAddress.split("\\.")    //this is double back slash
于 2013-04-06T13:11:11.017 に答える
1

Java で IP アドレスを処理するクラスがあり、文字列を自分で解析しようとせずに適切な表現を取得できます。

InetAddress a = InetAddress.getByName("10.0.0.2");
byte[] b = a.getAddress();
System.out.println(b[0]+" "+b[1]+" "+b[2]+" "+b[3]);
于 2013-04-06T13:17:27.087 に答える
0

使用する String parts[] = ipAddress.split("\\.")

于 2013-04-06T13:19:12.830 に答える