質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

3回答

8364閲覧

(Java)JavascriptのArray.join()と同じ事をJavaでやるには?

rion

総合スコア17

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

2クリップ

投稿2014/11/11 01:39

Javaには、JavascriptにおけるArray.join()のような処理はありますか?
具体的には以下のような文字列連結したい場合、これと同じ事をJavaでやりたい時にはどうしますか?
なるべく簡潔なコードで済ませる方法が知りたいです。
よろしくおねがいします。

Javascriptのコード:

lang

1["田中さん","鈴木さん","林さん"].join("と")

結果:

lang

1田中さんと鈴木さんと林さん

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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

ucddx

総合スコア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.joinCharSequenceの配列(可変長引数含む)とコレクションしか取れないのですが、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

argius

総合スコア9388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

確認はしてませんが、 java8 には join() があるようです。

...
(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

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問