在一个String中获取字符串数组的所有值

时间:2009-10-10 21:13:15

标签: java arrays string

如果我有,

String[] s = new String[3];
s[0] = "Ap";
s[1] = "p";
s[2] = "le";

String result = ?

如果我想在没有循环的情况下让苹果公司退出,我该怎么做?

任何捷径?

6 个答案:

答案 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()类型方法。如果你想隐藏循环,你必须自己滚动一个。