2013-01-16 28 views
2

如果你的字符串,例如:乘以串

String = "Hello world"; 

你怎么把它打印出来(n)的时间?

例如

System.out.print("Hello world" * 5); 

给输出:

Hello world 
Hello world 
Hello world 
Hello world 
Hello world 

现在很明显,我不能只是乘以5串,因为我已经做了。

我知道我必须将字符串转换为一个整数将能够使用的东西?但我该怎么做?

+0

“Hello world”翻译成什么数字? – Oded

+4

为什么不使用for循环? –

+0

递归也做工作检查我的回答 – Suranga

回答

7

你会使用一个循环:

for(int i = 0; i < 5; i++) { 
    System.out.println("Hello world"); 
} 

但我认为你需要在你的编程基础知识在这里工作 - 一本好书的Java会更加对你有用比SO张贴这样的问题。

+0

是的好吧。欢呼 – hicks

0

你可以说,采用串并为其字符串需要值的方法进行印刷,如:

public String multiplyString(String s,int i){ 
    String result=""; 
    for(;i<0;i--){ 
     result += " "+result; //for appending strings 
    } 
return result; 
} 

然后调用这个方法:

System.out.print(multiplyString("Hello wrold",5)); 
+0

谢谢你,这是我需要的方法:) – hicks

0

嘿学习递归位方法也

public static void main(String[] args) throws IOException { 

    test("Hello World ",5); 

} 

public static void test(String s,int x){ 

     if(x==0)return; 
      System.out.println(s); 
     test(s,--x); 

} 

出把

Hello World 
Hello World 
Hello World 
Hello World 
Hello World 
+0

它不会做出很大的区别,如果你使用'测试(s,x - );',但是你可以减少一行。但我认为使用递归会很昂贵。不是吗? – Smit

+0

@smit谢谢,但它应该是测试(s, - x) – Suranga

1

在Python(红宝石太,我认为),你可以通过号码“相乘”它很字符串连接:

>>> print "Hello" * 5 
HelloHelloHelloHelloHello 

在Java中专门有相当数量的方式来做到这一点,开始与循环。顺便提一句,你可以在Java中多次连接字符串:

package test; 

public class test { 

public static void main(String[] args) { 

    String s1 = "hello"; 
    for (String s = s1; s.length() <= 5 * s1.length(); s = s + s1) 
     System.out.println(s); 
} 

} 

现在,上面是一个糟糕的想法。 :-)如果重复,不要这样做,每当你连接字符串并分配一个新字符串时,都会创建一个新字符串,并且旧字符串会被丢弃 - 如果您多次执行该操作,效率会非常低下。

一般来说,以前的海报是正确的:选择一本关于Java的书 - 更好的是Python - 并学习!