Jay*_*com 0 java performance gwt
基本上给定一个int,我需要生成一个长度相同的String,只包含指定的字符.相关的问题在这里,但它涉及到C#和它做事情有什么的字符串.
这个问题,以及我对它的回答是我问这个问题的原因.我不确定什么是表现明智的最佳方式.
方法签名:
String getPattern(int length, char character);
Run Code Online (Sandbox Code Playgroud)
用法:
//returns "zzzzzz"
getPattern(6, 'z');
Run Code Online (Sandbox Code Playgroud)
String getPattern(int length, char character) {
String result = "";
for (int i = 0; i < length; i++) {
result += character;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
这是我能表现得最好的吗?
您应该使用StringBuilder而不是以这种方式连接字符.使用StringBuilder.append().
StringBuilder将为您提供更好的性能.连接方式的问题是每次创建一个新的String(字符串是不可变的),然后复制旧的字符串,附加新的字符串,并抛弃旧的String.这是一个额外的工作,在一段时间内(如在一个大的for循环中)会导致性能下降.
小智 5
StringUtils来自commons-lang或Strings番石榴是你的朋友.如前所述,避免使用 String连接.
StringUtils.repeat("a", 3) // => "aaa"
Strings.repeat("hey", 3) // => "heyheyhey"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
732 次 |
| 最近记录: |