序文
Javaプログラミングでは、特定の文字、文字などに従って文字列をカットオフポイントとして分割する必要があることを誰もが知っておくべきだと思います。これにより、この文字列の一部を使用したり、インターセプトされたすべてのコンテンツを配列に保存したりできます。次の記事では、セグメンテーションの2つの方法を共有します。一緒に見てみましょう。
1。Java.lang.Stringのsplit()メソッド、JDK 1.4以降
public String[] split(String regex,int limit)
サンプルコード
public class stringsplit {public static void main(string [] args){string sourcestr = "1,2,3,4,5"; string [] sourcestrarray = sourcestr.split( "、"); for(int i = 0; i <sourcestrarray.length; i ++){system.out.println(sourcestrarray [i]); } //最大3つの文字列int maxsplit = 3; sourcestrarray = sourcestr.split( "、"、maxsplit); for(int i = 0; i <sourcestrarray.length; i ++){system.out.println(sourcestrarray [i]); }}}出力結果:
12345123,4,5
分割実装は、マッチャークラスの分割方法を直接呼び出します。 String.splitメソッドを使用して文字列を区切る場合、区切り文字がいくつかの特殊文字を使用している場合、予想される結果が得られない場合があります。
正規表現で特別な意味を持つキャラクターは、それらを使用するときに逃げる必要があります。例:
public class stringsplit {public static void main(string [] args){string value = "192.168.128.33"; // //を追加する必要があることに注意してください。 for(int i = 0; i <names.length; i ++){system.out.println(names [i]); }}}スプリットセパレーターの概要
1。文字 "|"、 "*"、 "+"は、逃げた文字で追加する必要があり、「//」がそれらの前に追加される必要があります。
2。「/」の場合、「////」として記述する必要があります。
3.文字列に複数の区切り文字がある場合は、「|」を使用できます。ハイフンとして。
例: String str = "Java string-split#test" 、 Str.split(" |-|#")を使用して各文字列を分離できます。これにより、文字列が3つのサブストリングに分割されます。
2。Java.util.TokenizerJDK1.0以降
StringTokenizer
StringTokenizerクラスにより、アプリケーションは文字列をトークンに分解できます。 StringTokenizerは、互換性の理由で保存されているレガシークラスです(ただし、新しいコードでは奨励されていません)。この機能を求めているすべての人がStringの分割方法またはJava.util.regexパッケージを使用することをお勧めします。
コードの例
public class stringsplit {public static void main(string [] args){string ip = "192.168.128.33"; stringtokenizer token = new StringTokenizer(IP、 "。"); while(token.hasmoreElements()){system.out.print(token.nexttoken()+""); }}}ただし、文字列「192.168..33」の分割では、返された文字列アレイには3つの要素しかなく、2つのセパレーターの間の空の文字列は無視されます。これは注意して使用する必要があります。
ただし、 String.split ( String.splitは正規式と一致するため、KMP stringマッチングアルゴリズムを使用しないため、順番に横断するアルゴリズムを使用します。 ETLデータ処理などの文字列セグメンテーションを頻繁に使用するアプリケーションの場合、StringTokenizerを使用するパフォーマンスを大幅に改善できます。
要約します
上記は、この記事のコンテンツ全体です。この記事の内容があなたの研究や仕事に役立つことを願っています。ご質問がある場合は、メッセージを残してコミュニケーションをとることができます。