当前位置: 首页 > 面试题库 >

如何在Java中串联字符串数组

谷良弼
2023-03-14
问题内容

我想知道如何在Java中连接4个字符串数组。

已经有一个问题了。 如何在Java中连接两个数组?

但是我试图复制它,但是它对我不起作用。

这是我的代码如下所示:

调用方法:

concatAll(jobs1, jobs2, jobs3, jobs4);

方法本身:

public String[] concatAll(String[] jobsA, String[] jobsB, String[] jobsC, String[] jobsD) {
    int totalLength = jobsA.length;
    for (String[] array : jobsD) {
        totalLength += array.length;
    }

    String[] result = Arrays.copyOf(jobsA, totalLength);

    int offset = jobsA.length;

    for (String[] array : jobsD) {
        System.arraycopy(array, 0, result, offset, array.length);
        offset += array.length;
    }
    return result;
}

问题答案:

抛开诸如检查数组是否为的事情null,您可以为其创建通用方法,并在您的特定情况下使用它,如下所示:

    public String[] concatAll(String[] jobsA, String[] jobsB, String[] jobsC, String[] jobsD) 
    {
        return generalConcatAll (jobsA, jobsB, jobsC, jobsD);
    }

    public String[] generalConcatAll(String[]... jobs) {
        int len = 0;
        for (final String[] job : jobs) {
            len += job.length;
        }

        final String[] result = new String[len];

        int currentPos = 0;
        for (final String[] job : jobs) {
            System.arraycopy(job, 0, result, currentPos, job.length);
            currentPos += job.length;
        }

        return result;
    }


 类似资料:
  • 问题内容: 在将根据循环被重复。如何将结果另存为新字符串。例如,如果工作“ hello”重复了两次,我现在将如何创建“ hellohello”作为一个全新的字符串。 问题答案:

  • 问题内容: 为什么下面的工作?我希望会被抛出。 问题答案: 为什么必须起作用? 在JLS 5,第15.18.1.1节 JLS 8§15.18.1 “字符串连接运算符+” ,导致JLS 8,§5.1.11 “字符串转换”,要求该操作无故障成功: …现在只需要考虑参考值。如果引用为null,则将其转换为字符串“ null”(四个ASCII字符n,u,l,l)。否则,转换的执行就好像是通过调用不带参数的

  • 问题内容: 我将SET1声明为静态String [],我想将SET2声明为SET1 +其他一些参数。是否可以声明SET2与SET1静态相似(即私有静态String []),但使用上面的定义,如果不这样做的话? 问题答案: 查看Commons Util ArrayUtils.add:

  • 问题内容: 在Go中,a 是原始类型,这意味着它是只读的,对其的每次操作都会创建一个新的字符串。 因此,如果我想多次连接字符串而又不知道结果字符串的长度,那么最好的方法是什么? 天真的方法是: 但这似乎不是很有效。 问题答案: 新方法: 在Go 1.10+中strings.Builder,这里是。 生成器用于使用Write方法有效地构建字符串。它最大程度地减少了内存复制。零值可以使用了。 与几乎相

  • 问题内容: 我有一个旧的Java文件,该文件使用String串联来构建巨大的String对象。这是一个严重的性能问题。 至 基本上我只需要在Java中存根即可将String实例化作为输入并转换为StringBuilder.Anybody曾经尝试过吗? 问题答案: 在您的示例中,固定文字比使用StringBuilder更有效。 固定文字将被编译器检测到并将被内联为单个值,因此这两行 和 将生成完全相

  • 问题内容: 在C ++中,创建多行字符串的最佳规范方法是创建相邻字符串,并让编译器在编译时将它们连接起来,如下所示: 在Java中,我唯一知道的方法是串联: 问题是,这是在运行时生成单个字符串,还是Java实际上也在编译时进行连接?出现此问题的原因是由于以下行为: 问题答案: String s3 = “a”; s3 += “bc”; 与: 因此,它创建了一个新实例。 您甚至可以尝试: