3

この質問をするのは恥ずかしいです。これは本当の初心者の質問ですが、午前中ずっと頭を悩ませていました。3 つのピリオドを区切り文字として使用して、IP アドレスを 4 つの個別の文字列に分割しようとしています。私が使用しているコードは次のとおりです。

     Toast.makeText(getBaseContext(),s,Toast.LENGTH_SHORT).show();
     String[] ip = s.split(".",4);
     String ip0ne = ip[0];
     String ipTwo = ip[1];
     String ipThree = ip[2];
     String ipFour = ip[3];

「s」は IP アドレス「82.163.99.82」を含む文字列です。これはトーストで検証されますIPアドレスは完全に消えました。助けてください!

4

2 に答える 2

8
String[] ip = s.split("\\.",4);

文字列引数は正規表現として評価されるため、ドットをエスケープする必要があります (Java では、エスケープ文字もエスケープする必要があります。したがって、二重バックスラッシュ)。

于 2012-08-15T12:07:16.447 に答える
1

splitメソッドは正規表現を取ります-そして正規表現では任意の文字に一致します:(個人的には、正規表現以外のAPIがメソッド名にそれを示すものを何も持たずに正規表現を取るのはおかしいと思いますが、ねえ....String

分割値として使用できますが、個人的にはGuavaとその型を使用します。"\\."Splitter

private static final Splitter DOT_SPLITTER = Splitter.on('.').limit(4);
于 2012-08-15T12:08:49.903 に答える