JAVA 将数组中的字符串拆分为更小的数组以进入创建对象的方法?

JAVA Splitting Strings from an array into smaller arrays to go in a method to create object?

我正在为初学者 java 课程开发一个项目,我需要读取一个文件并将每一行转换为一个对象,我最终会将其作为工作列表打印出来。 (请不要 ArrayList 建议) 到目前为止,我已经将该文件保存到一个 String[] 中,其中包含如下字符串:

*"iOS/Android 移动应用程序开发人员 - Java, Swift","Freshop, Inc.","每年 88,000 美元 - 103,000 美元"

“安全工程师 - 攻击性安全”,“确实”,“每年 104,000 - 130,000 美元”

“前端开发人员 - CSS/HTML/Vue”,“HiddenLevers”,“每年 80,000 - 130,000 美元”*

我遇到的问题是尝试将每个字符串分成三个部分,以便可以将其输入到我的 JobService createJob 方法中,如图所示:

 public Job createJob(String[] Arrs) {
       Job job = new Job();
        job.setTitle(Arrs[0]);
        job.setCompany(Arrs[1]);
        job.setCompensation(Arrs[2]);
        return job;
    }

我的正则表达式很糟糕,但我知道尝试 .split(",") 也会分解工资部分。如果有人可以帮助找出一种可靠的方法来拆分这些字符串以适合我的方法,我将不胜感激!!! 我也是超级新人,请用像我这样的平民能理解的语言...

你需要一个更好的分割标准,例如\","...

String text = "\"iOS/Android Mobile App Developer - Java, Swift\",\"Freshop, Inc.\",\",000 - 3,000 a year\"";
String[] parts = text.split("\",");
for (String part : parts) {
    System.out.println(part);
}

打印...

"iOS/Android Mobile App Developer - Java, Swift
"Freshop, Inc.
",000 - 3,000 a year"

现在,如果您想删除引号,您可以执行类似...

String text = "\"iOS/Android Mobile App Developer - Java, Swift\",\"Freshop, Inc.\",\",000 - 3,000 a year\"";
String[] parts = text.split("\",");
for (String part : parts) {
    System.out.println(part.replace("\"", ""));
}

正则表达式

不,我也不擅长。我试过了...

String[] parts = text.split("^\"|\",\"|\"$");

虽然这有效,但它会产生 4 个元素,而不是 3 个(第一个匹配项是空白)。

您可以删除首引号和尾随引号,然后只使用 "," 代替...

text = text.substring(1, text.length() - 2);
String[] parts = text.split("\",\"");
  1. trim 前后引号
  2. 分裂于 ","

作为代码:

String[] columns = line.replaceAll("^\"|\"$", "").split("\",\"");

^"|"$ 表示“开头 结尾的引号”

拆分的正则表达式只是一个文字 ","