打印一串' n'重复字符串的字符

时间:2016-11-17 06:42:43

标签: java string loops int

这是我的修订版。我尝试通过重复int n来构建一串String s个字符。我试图得到的答案是testtestte

这是我到目前为止所拥有的。当索引达到4时,它显然会被输出或绑定,因为字符串只有4个字符。我想要它,以便当索引达到3时它会回到0并继续直到int n满足(这可能是错误的单词)10。抱歉,如果问题不够清楚。

  public static void main(String[] args){

    beads("test", 10);

  }

 public static void beads(String s, int n){

    char[] eachChar = new char[n];
    for (int index = 0; index < n; index++) {
      eachChar[index] = s.charAt(index);
    }
    System.out.println(eachChar);

  }

4 个答案:

答案 0 :(得分:3)

一个简单的解决方案是按字符串的长度对索引进行模数化:

  eachChar[index] = s.charAt(index % s.length());

答案 1 :(得分:2)

只需使用mod(%)运算符。

public static void main(String[] args){
    beads("test", 10);
}

public static void beads(String s, int n){
    char[] eachChar = new char[n];
    for (int index = 0; index < n; index++) {
        eachChar[index] = s.charAt(index%s.length());
    }
    System.out.println(eachChar);
}

答案 2 :(得分:2)

考虑一种更轻松,更懒惰的方式

    String in = "test";
    int len = 10;

    StringBuilder buf = new StringBuilder();
    while (buf.length() < len) {
        buf.append(in);
    }
    System.out.println(buf.substring(0, len));

总是试图找到一种更简单的方法来做事,因为最终会有更少的错误

答案 3 :(得分:0)

最快的方法是使用arrayCopy,将值复制到bouts中的数组。这与&#34; string / stringbuilder等使用的方法相同。&#34;国内 以下是如何使用它

 class DateNSDateConverter
  {
    /// The singleton instance
    static var sharedConverter = DateNSDateConverter()

    let calendar: Calendar
    let utc: TimeZone

    init() {
        calendar = Calendar(identifier: Calendar.Identifier.gregorian)
        utc = TimeZone(abbreviation: "UTC")!
  calendar.timeZone = utc; // error come here in this line 


    }