如果我有,
String[] s = new String[3];
s[0] = "Ap";
s[1] = "p";
s[2] = "le";
String result = ?
如果我想在没有循环的情况下让苹果公司退出,我该怎么做?
任何捷径?
答案 0 :(得分:9)
如果不循环对你来说比防止导入另一个库或者你已经使用apache commons lang更重要,那么你可以使用StringUtils.join方法
import org.apache.commons.lang.StringUtils;
String joined = StringUtils.join(s, "");
也许Apache Commons还有其他可能对您的项目感兴趣的方法。我发现它们是本机Java库中缺少功能的非常有用的资源。
答案 1 :(得分:2)
没有循环,你可以:
public String joinpart(String[] a, int i, String prefix) {
if (i < a.length) {
return joinpart(a, i + 1, prefix + a[i]);
}
return prefix;
}
然后:
String[] a = new String[]{"Ap", "p", "le"};
String apple = joinpart(a, 0, "");
这称为递归解决方案。
答案 2 :(得分:1)
如果您知道阵列的长度,则可以轻松执行以下操作:
String result = s[0] + s[1] +s[2];
另一种选择是执行以下操作(这纯粹是学术性的,我不会在真实场景中使用它,因为它会删除[
,]
和<space>
来自你的字符串):
String result = Arrays.toString(s).replaceAll("[\\]\\[, ]", "");
另一种选择,与第一次尝试同时使用,但使用类似C的格式化程序:
System.out.println(String.format("%s%s%s", s));
答案 3 :(得分:1)
使用Dollar很简单,只需输入:
String[] array = new String[] { "Ap", "p", "le" };
String result = $(array).join(); // result now is "Apple"
答案 4 :(得分:0)
String result = s[0] + s[1] + s[2];
如果你的参赛作品数量不详,我认为你需要一个循环。
答案 5 :(得分:0)
Java没有String.join()
类型方法。如果你想隐藏循环,你必须自己滚动一个。