2013-05-28 7 views
5

、これを行うことができ、他のJavaでクリーナー、その後作成方法同じ文字からなる長さの文字列を複数回繰り返しますか?私は、文字<code>A</code>の<code>n</code>インスタンスで構成されます<code>String s</code>をしたい場合は

public static String stringOfSize(int size, char ch) { 
    StringBuilder s = new StringBuilder(); 
    while (size-- > 0) { 
     s.append(ch); 
    } 
    return s.toString(); 
} 

私たちはより良い行うことができますか?ただ疑問に思う。

+1

パラメータ変数を変更しなかった場合はよりクリーンになりますが、そうでないとわかりやすくなります。 – Keppil

+4

あなたのビルダーをpresizeする必要があります。 (または単に 'char []'を使用してください) – SLaks

答えて

16

すべてで、このコードには何も...しかし、多分あなたはArrays.fill()を使用することができます。

public static String stringOfSize(int size, char ch) 
{ 
    final char[] array = new char[size]; 
    Arrays.fill(array, ch); 
    return new String(array); 
} 
+0

私はこのオプションが最適だと思います。速度を上げるために(ただしメモリを消費するため)、このソリューションにキャッシングを追加することもできます。結果を 'Map >キャッシュ'に格納し、生成せずに正しい文字列を取得します。 –

7

あなたは次のことを行うことができます:

return StringUtils.repeat(ch, size); 

注:StringUtilsがビルトインされていないにJDK - http://commons.apache.org/proper/commons-lang/

+2

JDKに組み込みのStringUtilsはありません。 – fge

+0

もし 'StringUtils'が利用可能なら' StringUtils#repeat() 'だけです。 – Keppil

+0

@fge - 正しいです、メモを追加しました –

関連する問題