0

文字と整数の 2 つのパラメーターを取るメソッド complete を記述する必要があります。このメソッドは、n 回繰り返される文字パラメータを含む文字列を返す必要があります。ここで、n は整数パラメータの値です。たとえば、fill('z',3) は「zzz」を返す必要があります。fill('b',7) は「bbbbbbb」を返す必要があります。私はJavaが初めてなので、コレクションを使用することはできません..コードを書こうとしています:

public class first{
String fill(char s, int times) {
if (times <= 0) return "";
else return s + repeat(s, times-1);
}

ここで char をどのように使用できますか?

4

4 に答える 4

1

再帰なしで非常に単純:

public class StringFill {

    public static void main(String[] args) {
        System.out.println(fill('x', 5));
    }

    public static String fill (char c, int howMany) {
        if (howMany < 1) return "";
        StringBuilder sb = new StringBuilder();
        for (int i=0; i<howMany; i++) sb.append(c);
        return sb.toString();
    }

}

別の選択肢として、すぐに使用できるApache Commons Lang StringUtilsメソッドのrepeatを使用できます。

于 2013-10-05T21:34:09.353 に答える
1

宿題の問題のように聞こえます: コードを表示するつもりはありませんが、さまざまなオプションがあります。

  1. 再帰
  2. StringBuilderループを使用して使用します。
  3. を作成し、byte[]それをループして使用しますnew String(myBytes, Charset.fromName('ASCII'));
于 2013-10-05T21:36:08.933 に答える
0

ねえ、このようなものはどうですか:

public class Example
{
    public void charsTimesN(char c, int n)
    {
      int i = 1;
      if (n < 0)
      {
         System.out.println("Error");
      } 
      else 
      {
         while (i <= n)
         {
            System.out.print(c);
            i++;
         }
      }
    }
}

次に、メイン クラス メソッドを用意します。

public class UseExample
{
   public static void main(String args [])
   {
      char c = 'f';
      int n = 10;
      Example e = new Example();
      e.charsTimesN(c, n);
   }
}

出力: ffffffffff

それが役立つことを願っています!

于 2013-10-05T21:57:39.933 に答える
0

繰り返しを塗りつぶしに置き換えます。times が 1 の場合は return も追加します。

Public class first {
  String fill(char s, int times) {
    if (times <= 0) return "";
    else if (times == 1) return s;
    else return s += fill(s, times-1);
  }
}

また、関数を private、protected、または public と宣言し、デフォルトのままにしないことをお勧めします。

于 2013-10-05T21:36:04.467 に答える