その手の平は尻もつかめるさ

ギジュツ的な事をメーンで書く予定です

Java で 任意個の文字を何らかのデリミタ区切りで記述した文字列がサクッと欲しいみたいなとき

こう書くと手っ取り早そう.

IntStream.rangeClosed(1, 10)
    .mapToObj(ignored -> "?")
    .collect(Collectors.joining(",")); // => "?,?,?,?,?,?,?,?,?,?"

次世代っぽい!!!

[追記]
id:nowokay さんから以下の方が良いのではという指摘が.確かに分かりやすい!

Stream.generate(() -> "?")
    .limit(10)
    .collect(Collectors.joining(","));

[追記2]
ちなみに gs-collections だとこう書けるとのこと.

Interval.oneTo(10)
    .collect(ignored -> "?")
    .makeString(",")

簡単ですね!

[追記ここまで]


以下やりとりとなります.

moznion [7:52 PM]
n個の”?”を”,”区切りで記述した文字列がサクッと欲しい,みたいな時に便利な奴ってありますか
List作ってString.joinとかが楽なのだろうか……

tokuhirom [7:56 PM]
それね
IntStream.rangeClosed(1,5).map(“,”).collect(Collectors.joining(“,”))
的な感じ

moznion [7:56 PM]
oh!

tokuhirom [7:56 PM]
おかしいけどw

moznion [7:56 PM]
ナウい書き方に見えますねw
map(“?”) か

tokuhirom [7:58 PM]
.map(n -> “?”) が正しいが
join(“,”, map { “?” } 1..10 )
と同じこと
まあ perl なら `(‘?’) x 10` だけどな!

moznion [7:58 PM]
そうすねw

tokuhirom [8:01 PM]
そういえば
TinyORM に QueryTerm.in() みたいなのを
いれたくて
入れたいな、とは思っているw

moznion [8:02 PM]
IntStream.rangeClosed(1, 10)
.mapToObj(ignored -> "?")
.collect(Collectors.joining(","));
出来た〜〜
そしてIN句を組もうとしていたことがバレバレであるw

xaicron [8:06 PM]
IN いがいでなかなかそのシチュエーションないからなーw