簡體   English   中英

重復一個字符串

[英]Repeating a string

我對編程非常陌生,因此我必須為以下內容編寫方法和程序; public static String repeat(String str,int n)返回重復n次的字符串。 示例(“ ho”,3)返回“ hohoho”這是到目前為止的程序:

public static void main(String[] args) {
    // **METHOD** //
    Scanner in = new Scanner(System.in);
    System.out.println("Enter a string");
    String str = in.nextLine();

    System.out.println(repeat (str));//Having trouble with this line
}

    // **TEST PROGRAM**//
public static String repeat(String str, int n)
{
    if (n <= 0)
    {
        return ""//Having trouble with this line
    }

    else if (n % 2 == 0)
    {
        return repeat(str+str, n/2);
    }

    else
    {
        return str + repeat(str+str, n/2);
    }
}                
}

我對代碼進行了一些更改,但仍然無法正常工作

 public static void main(String[] args) {
    // **METHOD** //
    Scanner in = new Scanner(System.in);
    System.out.println("Enter a string");
    String str = in.nextLine();
    int n = in.nextInt();

    System.out.println(repeat(str,n));
}

    // **TEST PROGRAM**//
public static String repeat(String str, int n)
{
    if (n <= 0)
    {
        return "";
    }

    else if (n % 2 == 0)
    {
        return repeat(str+str, n/2);
    }

    else
    {
        return str + repeat(str+str, n/2);
    }
}                
}

您已經在遇到問題的行中錯過了半冒號,應該return ""; 而不return ""

另外,行System.out.println(repeat (str)); 應該有2個參數,因為重復的定義是:

public static String repeat(String str, int n)

進一步說明,可能更簡單的功能是

  public static String repeat(String str, int n) { if (n == 0) return ""; String return_str = ""; for (int i = 0; i < n; i++) { return_str += str; } return return_str; } 

我很快注意到的兩件事:您忘記了一個半列,而您對“ repeat”的調用與方法簽名不匹配(您忘記了n)

調用所需方法時,沒有傳遞正確的參數。

稱為repeat (str,k) k應為整數

public static String repeat(String toRepeat, int n){
 if(n==0){
     return "";
 }

 return toRepeat+repeat(toRepeat,n-1);
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM