【发布时间】:2013-07-18 22:12:04
【问题描述】:
请多多包涵。我已经一年多没有编程了,我目前正在通过做“家庭作业问题”来审查我的 Java 以进行工作面试。我的函数应该返回一个包含给定字符串中每隔一个字符的字符串。有没有不那么尴尬的方式来做到这一点?
public String stringBits(String str) {
StringBuffer tmp = new StringBuffer();
for(int i = 0; i<str.length(); i+=2)
tmp.append(str.charAt(i));
String ret = new String(tmp);
return ret;
【问题讨论】:
-
你应该包含第一个字符吗?只有跳出的修复是您应该使用
return tmp.toString()而不是使用new String(tmp),并使用StringBuilder而不是StringBuffer。 -
谢谢。你能解释一下为什么使用 StringBuilder 是一个更好的主意吗?
-
StringBuffer是同步的,而StringBuilder不是,因此对于单线程代码,使用 StringBuilder 更有效。事实上,现在使用 StringBuilder 几乎总是更好,因为您很少会在线程之间共享此类的实例。
标签: java string coding-style