Java の Split() String メソッドと例

文字列分割() このメソッドは、指定された正規表現の一致を中心に指定された文字列を分割します。指定された正規表現に基づいて分割した後、このメソッドは文字列配列を返します。

Input String: 016-78967 Regular Expression: - Output : {'016', '78967'} 

Java の Split() メソッドの 2 つのバリエーションを次に示します。

1. パブリック文字列 [] 分割 (文字列正規表現、整数制限)

パラメーター

    regex – 区切りの正規表現 Limit – 結果のしきい値

戻り値

文字列の配列は、指定された文字列を分割することによって計算されます。

スローされた例外

パターン構文例外 – 指定された正規表現の構文が無効な場合。

制限パラメータには 3 つの値を指定できます

    limit> 0 – この場合、パターンは最大でも limit-1 回適用され、結果の配列の長さは n を超えず、結果の配列の最後のエントリには、最後に一致したパターンを超えるすべての入力が含まれます。 limit <0 – この場合、パターンは可能な限り何度も適用され、結果として得られる配列のサイズは任意です。 limit = 0 – この場合、パターンは可能な限り何度も適用され、結果として得られる配列のサイズは任意であり、末尾の空の文字列は破棄されます。

仕組みは次のとおりです。

分割する文字列を – オタク@のために@オタク

正規表現 限界 結果
@ 2 {オタク、for@geekss}
@ 5 {オタク、のための、オタク}
@ -2 {オタク、のための、オタク}
s 5 {オタク、 、 @for@ オタク、 、 }
s -2 {オタク、 、 、 @for@ オタク、 、 }
s 0 {オタク、、@for@geek}

以下は、split() の動作を示す Java サンプル コードです。

例 1:

ジャワ




// Java program to demonstrate working of split(regex,> // limit) with small limit.> public> class> GFG {> > // Main driver method> > public> static> void> main(String args[])> > {> > // Custom input string> > String str => 'geekss@for@geekss'> ;> > String[] arrOfStr = str.split(> '@'> ,> 2> );> > for> (String a : arrOfStr)> > System.out.println(a);> > }> }>

出力

geekss for@geekss 

例 2:

ジャワ




// Java program to demonstrate working of split(regex,> // limit) with high limit.> public> class> GFG {> > public> static> void> main(String args[])> > {> > String str => 'geekss@for@geekss'> ;> > String[] arrOfStr = str.split(> '@'> ,> 5> );> > for> (String a : arrOfStr)> > System.out.println(a);> > }> }>

出力

geekss for geekss 

例 3:

ジャワ




// Java program to demonstrate working of split(regex,> // limit) with negative limit.> public> class> GFG {> > public> static> void> main(String args[])> > {> > String str => 'geekss@for@geekss'> ;> > String[] arrOfStr = str.split(> '@'> , -> 2> );> > for> (String a : arrOfStr)> > System.out.println(a);> > }> }>

出力

geekss for geekss 

例 4:

ジャワ




// Java program to demonstrate working of split(regex,> // limit) with high limit.> public> class> GFG {> > public> static> void> main(String args[])> > {> > String str => 'geekss@for@geekss'> ;> > String[] arrOfStr = str.split(> 's'> ,> 5> );> > for> (String a : arrOfStr)> > System.out.println(a);> > }> }>

出力

geek @for@geek 

例 5:

ジャワ




// Java program to demonstrate working of split(regex,> // limit) with negative limit.> public> class> GFG {> > public> static> void> main(String args[])> > {> > String str => 'geekss@for@geekss'> ;> > String[] arrOfStr = str.split(> 's'> , -> 2> );> > for> (String a : arrOfStr)> > System.out.println(a);> > }> }>

出力

geek @for@geek 

例6:

ジャワ




// Java program to demonstrate working of split(regex,> // limit) with 0 limit.> public> class> GFG {> > public> static> void> main(String args[])> > {> > String str => 'geekss@for@geekss'> ;> > String[] arrOfStr = str.split(> 's'> ,> 0> );> > for> (String a : arrOfStr)> > System.out.println(a);> > }> }>

出力

geek @for@geek 

2. public String[] Split(String regex)

この分割メソッドのバリアントは、パラメータとして正規表現を受け取り、この正規表現 regex に一致する部分で指定された文字列を分割します。ここで、デフォルトの制限は 0 です。

パラメーター

正規表現 – 区切りの正規表現

戻り値

文字列の配列は、指定された文字列を分割することによって計算されます。

スローされた例外

パターン構文例外 – 指定された正規表現の構文が無効な場合。

以下に実際に動作するコード例をいくつか示します。

例 1:

ジャワ




// Java program to demonstrate working of split()> public> class> GFG {> > public> static> void> main(String args[])> > {> > String str> > => 'techcodeview.com:A Computer Science Portal'> ;> > String[] arrOfStr = str.split(> ':'> );> > for> (String a : arrOfStr)> > System.out.println(a);> > }> }>

出力

techcodeview.com A Computer Science Portal 

例 2:

ジャワ




// Java program to demonstrate working of split()> public> class> GFG {> > public> static> void> main(String args[])> > {> > String str => 'techcodeview.comforStudents'> ;> > String[] arrOfStr = str.split(> 'for'> );> > for> (String a : arrOfStr)> > System.out.println(a);> > }> }>

出力

Geeks Geeks Students 

上記の例では、パターン/正規表現 for が 2 回適用されていることがわかります (分割される文字列に for が 2 回存在するため)。

例 3:

ジャワ




// Java program to demonstrate working of split()> public> class> GFG {> > public> static> void> main(String args[])> > {> > String str => 'Geeks for Geeks'> ;> > String[] arrOfStr = str.split(> ' '> );> > for> (String a : arrOfStr)> > System.out.println(a);> > }> }>

出力

Geeks for Geeks 

例 4:

ジャワ




// Java program to demonstrate working of split()> public> class> GFG {> > public> static> void> main(String args[])> > {> > String str => 'Geeks.for.Geeks'> ;> > String[] arrOfStr> > = str.split(> '[.]'> );> // str.split('.'); will give> > // no output...> > for> (String a : arrOfStr)> > System.out.println(a);> > }> }>

出力

Geeks for Geeks 

例 5:

ジャワ




// Java program to demonstrate working of split()> public> class> GFG {> > public> static> void> main(String args[])> > {> > String str => 'Geekssss'> ;> > String[] arrOfStr = str.split(> 's'> );> > for> (String a : arrOfStr)> > System.out.println(a);> > }> }>

出力

Geek 

上記の例では、末尾の空の文字列は、結果として得られる配列 arrOfStr には含まれません。

例6:

ジャワ




// Java program to demonstrate working of split()> public> class> GFG {> > // Main driver method> > public> static> void> main(String args[])> > {> > String str => 'GeeksforforGeeksfor '> ;> > String[] arrOfStr = str.split(> 'for'> );> > for> (String a : arrOfStr)> > System.out.println(a);> > }> }>

出力

Geeks Geeks 

上記の例では、末尾のスペース (したがって空の文字列ではありません) が、結果の配列 arrOfStr の文字列になります。

例 7:

ジャワ




// Java program to demonstrate working of split()> // using regular expressions> public> class> GFG {> > public> static> void> main(String args[])> > {> > String str => 'word1, word2 word3@word4?word5.word6'> ;> > String[] arrOfStr = str.split(> '[, ?.@]+'> );> > for> (String a : arrOfStr)> > System.out.println(a);> > }> }>

出力

word1 word2 word3 word4 word5 word6 

上の例では、セット内で指定された文字のいずれかが出現するたびに単語が分割されます。