の Java String クラス join() このメソッドは、指定された区切り文字で結合された文字列を返します。 String join() メソッドでは、要素ごとに区切り文字がコピーされます。 join() メソッドは、JDK 1.8 以降 Java 文字列に含まれています。
Java String クラスには 2 種類の join() メソッドがあります。
サイン
join() メソッドのシグネチャまたは構文を以下に示します。
public static String join(CharSequence delimiter, CharSequence... elements) and public static String join(CharSequence delimiter, Iterable elements)
パラメーター
デリミタ : 各要素に追加される char 値
要素 : 区切り文字を付けるchar値
戻り値
区切り文字で結合された文字列
例外スロー
NullPointerException 要素または区切り文字が null の場合。
以来
1.8
内部実装
// type - 1 public static String join(CharSequence delimiter, CharSequence... elements) { Objects.requireNonNull(elements); Objects.requireNonNull(delimiter); StringJoiner jnr = new StringJoiner(delimiter); for (CharSequence c: elements) { jnr.add(c); } return jnr.toString(); }
// type - 2 public static String join(CharSequence delimiter, CharSequence... elements) { Objects.requireNonNull(elements); Objects.requireNonNull(delimiter); StringJoiner jnr = new StringJoiner(delimiter); for (CharSequence c: elements) { jnr.add(c); } return jnr.toString(); } public static String join(CharSequence delimiter, Iterable elements) { Objects.requireNonNull(elements); Objects.requireNonNull(delimiter); StringJoiner jnr = new StringJoiner(delimiter); for (CharSequence c: elements) { joiner.add(c); } return jnr.toString(); }
Java String join() メソッドの例
ファイル名: StringJoinExample.java
public class StringJoinExample{ public static void main(String args[]){ String joinString1=String.join('-','welcome','to','javatpoint'); System.out.println(joinString1); }}今すぐテストしてください
出力:
welcome-to-javatpoint
Java String join() メソッドの例 2
以下の例で日付と時刻を表示したように、区切り文字を使用して文字列をフォーマットできます。
ファイル名: StringJoinExample2.java
public class StringJoinExample2 { public static void main(String[] args) { String date = String.join('/','25','06','2018'); System.out.print(date); String time = String.join(':', '12','10','10'); System.out.println(' '+time); } }
出力:
25/06/2018 12:10:10
Java String join() メソッドの例 3
区切り文字として null を使用した場合、null ポインタ例外が発生します。次の例でも同じことが確認できます。
ファイル名: StringJoinExample3.java
public class StringJoinExample3 { // main method public static void main(String argvs[]) { String str = null; str = String.join(null, 'abc', 'bcd', 'apple'); System.out.println(str); } }
出力:
Exception in thread 'main' java.lang.NullPointerException at java.base/java.util.Objects.requireNonNull(Objects.java:221) at java.base/java.lang.String.join(String.java:2393) at StringJoinExample3.main(StringJoinExample3.java:7)
ただし、区切り文字を付ける必要がある要素が ヌル すると、あいまいさがわかります。それは、 join() メソッドが 2 つあるためです。 ヌル どちらのタイプの join() メソッドでも使用できます。次の例を見てください。
ファイル名: StringJoinExample4.java
public class StringJoinExample4 { // main method public static void main(String argvs[]) { String str = null; str = String.join('India', null); System.out.println(str); } }
出力:
/StringJoinExample4.java:7: error: reference to join is ambiguous str = String.join('India', null); ^ both method join(CharSequence,CharSequence...) in String and method join(CharSequence,Iterable) in String match /StringJoinExample4.java:7: warning: non-varargs call of varargs method with inexact argument type for last parameter; str = String.join('India', null); ^ cast to CharSequence for a varargs call cast to CharSequence[] for a non-varargs call and to suppress this warning 1 error 1 warning
Java String join() メソッドの例 4
区切り文字を付ける必要がある要素に文字列が含まれており、そのうちのいくつかが null である場合、null 要素は通常の文字列として扱われ、例外やエラーは発生しません。例を通してそれを理解しましょう。
ファイル名: StringJoinExample5.java
public class StringJoinExample5 { // main method public static void main(String argvs[]) { String str = null; // one of the element is null however it will be treated as normal string str = String.join('-', null, ' wake up ', ' eat ', ' write content for JTP ', ' eat ', ' sleep '); System.out.println(str); } }
出力:
null- wake up - eat - write content for JTP - eat - sleep