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]
おかしいけどwmoznion [7:56 PM]
ナウい書き方に見えますねw
map(“?”) かtokuhirom [7:58 PM]
.map(n -> “?”) が正しいが
join(“,”, map { “?” } 1..10 )
と同じこと
まあ perl なら `(‘?’) x 10` だけどな!moznion [7:58 PM]
そうすねwtokuhirom [8:01 PM]
そういえば
TinyORM に QueryTerm.in() みたいなのを
いれたくて
入れたいな、とは思っているwmoznion [8:02 PM]
IntStream.rangeClosed(1, 10)
.mapToObj(ignored -> "?")
.collect(Collectors.joining(","));
出来た〜〜
そしてIN句を組もうとしていたことがバレバレであるwxaicron [8:06 PM]
IN いがいでなかなかそのシチュエーションないからなーw