Javaには、JavascriptにおけるArray.join()のような処理はありますか?
具体的には以下のような文字列連結したい場合、これと同じ事をJavaでやりたい時にはどうしますか?
なるべく簡潔なコードで済ませる方法が知りたいです。
よろしくおねがいします。
Javascriptのコード:
lang
1["田中さん","鈴木さん","林さん"].join("と")
結果:
lang
1田中さんと鈴木さんと林さん
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
Google Guavaのライブラリでcom.google.common.base.Joinerクラスをおすすめします。
区切り文字での文字列連結が以下のような感じで簡単に書けます。
(※例は配列ですがListでも同じように書けるので調べてみてください。)
(例)
lang
1String[] array = new String[]{"田中さん", "鈴木さん", "林さん"}; 2String joinStr = Joiner.on("と").skipNulls().join(array); 3//↑nullが含まれる場合のNullPointerException回避のため .skipNulls() を指定
・com.google.common.base.Joiner
http://guava-libraries.googlecode.com/svn-history/r32/trunk/javadoc/com/google/common/base/Joiner.html
投稿2014/11/12 07:30
総合スコア57
0
Apache Commons LangのStringUtils.join
はいかがでしょう。
何かのWebフレームワークを使っているのでしたら、既にApache Commons Langのライブラリーが参照設定に含まれているかもしれません。例えば、Struts2やPlayFrameworkには含まれています。
もしお使いなら、新しくインストールする必要もありません。
lang
1// Java5以降, Java1.4以前ならLang2系で 2// import org.apache.commons.lang3.StringUtils; 3 4String[] a = { "田中さん", "鈴木さん", "林さん" }; 5System.out.println(StringUtils.join(a, "と")); 6 7// import java.util.Arrays; 8List<Object> list = Arrays.asList("A", Integer.valueOf(1), String.class); 9System.out.println(StringUtils.join(list, ", ")); 10// => A, 1, class java.lang.String
Java8のString.join
はCharSequence
の配列(可変長引数含む)とコレクションしか取れないのですが、StringUtils.join
はプリミティブ型の配列やコレクションなどが使えます。
逆に、StringUtils.join
はdelimiter付の場合の可変長引数が指定できません。
- APIのページ
[StringUtils.join (Apache Commons Lang 3.3.2 API)](https://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/StringUtils.html#join(java.lang.Object[],%20java.lang.String%29)
投稿2014/11/13 00:34
総合スコア9388
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
確認はしてませんが、 java8 には join() があるようです。
- あなたのJavaコードをスッキリさせる、地味に便利な新API 10選(前編) http://acro-engineer.hatenablog.com/entry/2014/03/12/112402
...
(1) String#join(CharSequence, Iterable)String[] strArray = { "abc", "def", "123", "456", "xyz" };
String separator = ",";System.out.println(String.join(separator, strArray));
// → abc,def,123,456,xyz という文字列が表示される
...
投稿2014/11/12 22:05
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。