gpt4 book ai didi

java - 根据行长度更改最终数组

转载 作者:太空宇宙 更新时间:2023-11-04 06:27:52 25 4
gpt4 key购买 nike

我有一个包含 3 个标题的文本文件,例如

serviceid, jobid, serviceNumber 
001, 5, 280

这存储了本周的机械师工作。 jobid/serviceid只能有一个,但服务号可以多个。

我有一个String[],它保存分割然后分配这些值。但是,诀窍是有些行有多个 serviceNumber,例如

serviceid, jobid, serviceNumber 
002, 8, 250,280,290

如何扩展数组以保存在 int[] serviceNumberArray 过程中遇到的任何额外代码?而且,我不被允许使用ArrayList。这是我当前的代码:

String jobs; //holds extracted textfile values
int jobID; //holds job id
int serviceID; //holds service id
int[] serviceNumber; //holds all service numbers

String[] splitJobs = new String[2]; //holds all split jobs
splitJobs = jobs.split(","); //splits jobs and sets delimiter as comma
this.serviceid = Integer.parseInt(splitJobs[0]);
this.jobID = Integer.parseInt(splitJobs[1]);
this.serviceNumber = Integer.parseInt(splitJobs[2]);

最佳答案

首先,您的代码看起来像 Java,所以我假设这就是您需要的答案。那么,这个

String[] splitJobs = new String[2]; // <-- array reference.

是骗人的。如果你把它扔掉,你就可以完全消除该行,并且你应该移动 serviceNumber 的声明。我想你想要类似的东西(注意正则表达式将删除逗号周围的任何空格),

// String[] splitJobs = new String[2];
String[] splitJobs = jobs.split("\\s*,\\s*"); // <-- creates a "dynamic" array.
this.serviceid = Integer.parseInt(splitJobs[0]);
this.jobID = Integer.parseInt(splitJobs[1]);
int[] serviceNumber = new int[splitJobs.length - 2];
for (int i = 2; i < splitJobs.length; i++) {
this.serviceNumber[i - 2] = Integer.parseInt(splitJobs[i]);
}

也可以编写该循环,

for (int i = 0; i < splitJobs.length - 2; i++) {
this.serviceNumber[i] = Integer.parseInt(splitJobs[i + 2]);
}

关于java - 根据行长度更改最终数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26541503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com