需要编写带有两个参数的方法完成 - 一个字符和一个整数。该方法应返回一个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?
答案 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)
听起来像是一个家庭作业问题:所以我不打算显示任何代码,但你有很多不同的选择。
StringBuilder
并使用循环。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
希望有所帮助!