同じ文字列を繰り返して連結するには(文字列の乗算みたいな) (* / x)

Go言語 strings.Repeat(str, 3)
Scala str * 3
Groovy str * 3
PHP str_repeat($str, 3)
Python str * 3
Ruby str * 3
Perl $str x 3

Go言語 (golang)

stringsパッケージのRepeat関数を使う。

package main

import "fmt"
import "strings"

func main() {
    str := "abc"
    fmt.Println(strings.Repeat(str, 3));
    // => abcabcabc
}

Scala

Signature:

println("abc" * 3);
// => abcabcabc

Groovy

println "abc" * 3
// => abcabcabc

PHP

echo str_repeat("abc", 3)
// => abcabcabc

str_repeat 関数 | PHP Manual
http://php.net/manual/ja/function.str-repeat.php

Python

print "abc" * 3
# => abcabcabc

* 演算子はシーケンス型に対して共通に使えるので、リストに対しても同じように使える。 ->リスト型の繰り返し

二項算術演算 | Python 2.7 documentation
http://docs.python.jp/2/reference/expressions.html#binary-arithmetic-operation

二項算術演算 | Python 3 documentation
http://docs.python.jp/2/reference/expressions.html#binary-arithmetic-operations

Ruby / JRuby

puts "abc" * 3
# => abcabcabc

配列に対しても * 演算子を使えるので、以下のようなことができる。

str = "abc"
puts ([str] * 3).join(",")
# => abc,abc,abc

Perl

x という演算子で文字列の繰り返しができる。左辺に数字を与えられてもそれを文字列として繰り返す。よくも悪くも数字の乗算演算子と記号が違うおかげである。x配列に対しても使える

print "abc" x 3;
# => abcabcabc

print 1 x 3;
# => 111

print join(',', (1, 2, 3) x 3);
# => 1,2,3,1,2,3,1,2,3

乗法演算子 | perldoc.jp
http://perldoc.jp/docs/perl/5.20.1/perlop.pod#Multiplicative32Operators

sh (シェルスクリプト)

str=$(head -c 3 /dev/zero | sed -e 's/\x00/abc/g')
echo $str
# => abcabcabc
このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク