在给定输入参数的java中创建初始化字符串

时间:2012-02-27 15:46:12

标签: java

有一种很好的方法可以创建一个字符串,该字符串使用一个int(计数器)和要设置的字符的多个字符进行初始化。 简单地说,我希望一个方法在传递5和#作为参数时返回“#,#,#,#,#”。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

为此编写方法非常简单:

public static String createPlaceholderString(char placeholder, int count) {
    StringBuilder builder = new StringBuilder(count * 2 - 1);
    for (int i = 0; i < count; i++) {
        if (i!= 0) {
            builder.append(',');
        }
        builder.append(placeholder);
    }
    return builder.toString();
}

(请注意,我们可以使用恰当大小的缓冲区初始化构建器,因为我们知道它的大小。)

可以使用来自GuavaStrings.repeat内容:

String text = Strings.repeat("#,", count - 1) + "#";

甚至更为深奥:

String text = Joiner.on(',').join(Iterables.limit(Iterables.cycle("#"), count));

......但我个人可能会坚持使用这种方法。

答案 1 :(得分:1)

使用StringUtils中的Apache Commons lang library实用程序:

String myString = StringUtils.repeat("#", ",", 5);

如果你只想要字符(而不是逗号分隔符),那就是:

String myString = StringUtils.repeat("#", 5);

答案 2 :(得分:0)

尝试:

public String buildString(int nbr, String repeat){
  StringBuilder builder = new StringBuilder();
  for(int i=0; i>nbr; i++){
     builder.append(repeat);
     if(i<(nbr-1))
         builder.append(",");
  }


   return builder.toString();
}