Repeat a string

From Rosetta Code
Revision as of 23:06, 21 October 2009 by Eriksiers (talk | contribs) (added PowerBASIC)
Task
Repeat a string
You are encouraged to solve this task according to the task description, using any language you may know.

Take a string and repeat it some number of times. Example: repeat("ha", 5) => "hahahahaha"

E

<lang e>"ha" * 5</lang>

Haskell

<lang haskell>concat $ replicate 5 "ha"</lang>

J

<lang j>

  5 ((* #) $ ]) 'ha'

hahahahaha </lang>

Java

Works with: Java version 1.5+

There's no function or operator to do this in Java, so you have to do it yourself. <lang java5>public static String repeat(String str, int times){

  StringBuilder ret = new StringBuilder();
  for(int i = 0;i < times;i++) ret.append(str);
  return ret.toString();

}

public static void main(String[] args){

 System.out.println(repeat("ha", 5));

}</lang>

JavaScript

This solution creates an array of n+1 null elements, then joins them using the target string as the delimiter <lang javascript>String.prototype.repeat = function(n) {

   return new Array(1 + parseInt(n, 10)).join(this);

}

alert("ha".repeat(5)); // hahahahaha</lang>

OCaml

<lang ocaml>let string_repeat s n =

 let len = String.length s in
 let res = String.create(n * len) in
 for i = 0 to pred n do
   String.blit s 0 res (i * len) len;
 done;
 (res)
</lang>

testing in the toplevel: <lang ocaml># string_repeat "Hiuoa" 3 ;; - : string = "HiuoaHiuoaHiuoa"</lang>

Alternately: <lang ocaml>let string_repeat s n =

 String.concat "" (Array.to_list (Array.make n s))
</lang>

Perl

<lang perl>"ha" x 5</lang>

PHP

<lang php>str_repeat("ha", 5)</lang>

PowerBASIC

<lang powerbasic>MSGBOX REPEAT$(5, "ha")</lang>

Python

<lang python>"ha" * 5 # ==> "hahahahaha"</lang>

Ruby

<lang ruby>"ha" * 5 # ==> "hahahahaha"</lang>

Tcl

<lang tcl>string repeat "ha" 5  ;# => hahahahaha</lang>