我有一个带有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]);
}