有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用for循环重复字符串

我对编程相当陌生。我试着在一个给定的字符串中重复这个单词,在同一个字符串中重复给定的次数。我决定循环遍历字符串,并将每个字符添加到一个新字符串中以打印出来,但我得到了一个索引外错误

final String string = "Hello";
final int num = 3;

int number = string.length() * num;
String str = "";

for (int i = 0; i < number; i++) {
    str += string.charAt(i);
}

System.out.println(str);

共 (3) 个答案

  1. # 1 楼答案

    简单点

    String string = "Hello";
    int num = 3;
    for (int i = 0; i < num; i++) {
        System.out.println(string);
    }
    

    如果你想在一个新的String中得到你的结果,你可以这样做:

    String string = "Hello";
    int num = 3;
    String res = "";
    for (int i = 0; i < num; i++) {
        res += string;
    }
    System.out.println(res);
    
  2. # 2 楼答案

    零基索引

    出现错误是因为i的值超出了Hello中可用的最后一个索引。Hello中的最后一个索引是"Hello".length() - 1,而i的值超出了该值,因为循环终止条件:

    i < string.length() *  num;
    

    顺便说一句,如果你想重复Hello3次,你应该像这样做

    for(int i = 0; i < num; i ++){
       System.out.print(string);
    }
    

    演示:

    public class Main {
        public static void main(String[] args) {
            final String string = "Hello";
            final int num = 3;
            for (int i = 0; i < num; i++) {
                System.out.print(string);
            }
        }
    }
    

    String#repeat

    使用Java 11+,您可以通过使用^{}在不使用循环的情况下实现这一点:

    System.out.println(string.repeat(num));
    

    演示:

    public class Main {
        public static void main(String[] args) {
            final String string = "Hello";
            final int num = 3;
            System.out.println(string.repeat(num));
        }
    }