Char参数在Java代码中重复n次

时间:2013-10-05 21:29:52

标签: java

需要编写带有两个参数的方法完成 - 一个字符和一个整数。该方法应返回一个String,其中包含重复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 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

听起来像是一个家庭作业问题:所以我不打算显示任何代码,但你有很多不同的选择。

  1. 递归
  2. 使用StringBuilder并使用循环。
  3. 创建byte[]并循环浏览并使用new String(myBytes, Charset.fromName('ASCII'));

答案 2 :(得分:0)

用填充替换重复。如果时间为1,还要添加一个返回。

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,而不是将其保留为默认值。

答案 3 :(得分: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

希望有所帮助!