有 Java 编程相关的问题?

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

java如何打印相同的字符串,以空格分隔n次

我想让圣诞老人说“Ho”总共n次,其中我指定“n”。 我知道如何打印n次,但我不知道如何在“Ho”之间正确插入分隔符,使结果看起来像:“Ho Ho”

下面给出了我对其进行编码的尝试:

public class Main
{
    public static String repeat(String str, int times) {
        return new String(new char[times]).replace("\0", str);
    }
    public static void main(String[] args) {
        Scanner s=new Scanner(System.in);
        String Ho="Ho";
        int n=s.nextInt();
        System.out.println(repeat(Ho, n)+"!");
    }
}

共 (2) 个答案

  1. # 1 楼答案

    自Java 11

    我们可以使用^{}。有了它,您的代码可以看起来像

    int n = 3;
    System.out.println("Ho" + " Ho".repeat(n-1) + "!");
    //output: Ho Ho Ho!
    

    自Java8

    我们可以使用带有空格的StringJoiner作为分隔符

    StringJoiner sj = new StringJoiner(" ");
    String str = "Ho";
    int n = 3;
    for (int i = 0; i<n; i++){
        sj.add(str);
    }
    String text = sj.toString();
    System.out.println(text); //Ho Ho Ho
    

    还可以使用StringJoiner(delimiter, prefix, suffix)在连接字符串的末尾自动添加!(作为后缀)

    StringJoiner sj = new StringJoiner(" ","","!");
    
  2. # 2 楼答案

    public class Main {
    
        public static void main(String[] args) {
            Scanner s = new Scanner(System.in);
            String ho = "Ho";
            int n = s.nextInt();
            System.out.println(repeat(ho, n) + "!");
        }
    
        public static String repeat(String str, int times) {
            StringBuilder builder=new StringBuilder();
            for(int i=0 ; i<times ; i++){
                builder.append(str).append(" ");
            }
            return builder.toString().trim();
        }
    }