我想知道如何在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”; 与: 因此,它创建了一个新实例。 您甚至可以尝试: