Java 如何将字符串数组中的所有字符合并到一个新字符串中?

Toe*_*fen 3 java arrays algorithm data-structures

我在做一个方法

public static String merge(String... s)
Run Code Online (Sandbox Code Playgroud)

这是输入:

String a = merge("AM ","L","GEDS","ORATKRR","","R TRTE","IO","TGAUU");
System.out.println(a);
Run Code Online (Sandbox Code Playgroud)

预期输出:

ALGORITMER OG DATASTRUKTURER
Run Code Online (Sandbox Code Playgroud)

我尝试多次运行循环,以便它选取 s[0].charAt(index) 并将其附加到字符串以进行输出。我遇到的问题是,当我尝试运行 s[1].charAt(1) 的循环时,它为空,我希望它不会得到 StringIndexOutOfBoundsException,而是继续 s[2] 并附加 s[2]。字符到字符串。

我该怎么做?

Era*_*ran 5

在尝试访问第 i 个字符之前,您需要检查每个字符串的长度:

StringBuilder sb = new StringBuilder();
int index = 0;
boolean maxLengthReached = false;
while (!maxLengthReached) {
    maxLengthReached = true;
    for (String str : input) {
        if (index < str.length) {
            sb.append(str.charAt(index));
            maxLengthReached = false;
        }
    }
    index++;
}

return sb.toString();
Run Code Online (Sandbox Code Playgroud)

为了澄清起见,我使用布尔值maxLengthReached来确定最长的最后一个字符何时String附加到输出中。如果在String对输入数组中所有s的完整迭代中,我们没有找到String足够长的s charAt(index),我们知道我们已经完成了。