java - 使用 toSplit() 方法拆分后如何使用字符串声明人员对象?
问题描述
我为自己制作了字符串,例如:
johnName = parts[0]
johnSurname = parts[1]
.
.
.
但是如果我有 100 个人而不是 3 个人呢?那么如何将字符串数组值放入对象中呢?
String text = "John.Davidson/05051988/Belgrade Michael.Barton/01011968/Krakov Ivan.Perkinson/23051986/Moscow";
String[] parts = text.split("[./ ]+" );
String johnIme = parts[0];
String johnPrezime = parts[1];
String johnDatum = parts[2];
String johnMesto = parts[3];
String michaelIme = parts[4];
String michaelPrezime = parts[5];
String michaelDatum = parts[6];
String michaelMesto = parts[7];
String ivanIme = parts[8];
String ivanPrezime = parts[9];
String ivanDatum = parts[10];
String ivanMesto = parts[11];
Person john = new Person(johnIme, johnPrezime, datumJohn, johnMesto);
Person michael = new Person(michaelIme,michaelPrezime,datumMichael ,michaelMesto);
Person ivan = new Person(ivanIme,ivanPrezime,datumIvan ,ivanMesto);
人:
Ime:John
Prezime:戴维森
数据:1988-05-05
Mesto:贝尔格莱德人:
Ime:Michael
Prezime:Barton
Datum:1968-01-01
Mesto: Krakov人:
Ime:Ivan
Prezime:Perkinson
数据:1986-05-23
Mesto:莫斯科
解决方案
你会使用一个循环和一个数组Person
(或者List<Person>
如果你愿意的话):
// ASSERTION: parts.length % 4 == 0
Person[] people = new Person[parts.length / 4];
int peopleIndex = 0;
for (int i = 0; i < parts.length; i += 4) {
people[peopleIndex++] = new Person(parts[i], parts[i + 1], parts[i + 2], parts[i + 3]);
}
我想你甚至不需要peopleIndex
:
// ASSERTION: parts.length % 4 == 0
Person[] people = new Person[parts.length / 4];
for (int i = 0; i < parts.length; i += 4) {
people[i / 4] = new Person(parts[i], parts[i + 1], parts[i + 2], parts[i + 3]);
}
使用List<Person>
:
// ASSERTION: parts.length % 4 == 0
List<Person> people = new LinkedList<>(); // Or new ArrayList<>(parts.length / 4), or...
for (int i = 0; i < parts.length; i += 4) {
people.push(new Person(parts[i], parts[i + 1], parts[i + 2], parts[i + 3]));
}
推荐阅读
- java - 如何在android中使用反射创建回调?
- revit - 如何在 Revit 中连接小于 10 度角的管道
- symfony - 错误 FOSUserBundle / 用户实体已经完成
- google-bigquery - 错误:对于参数类型的运算符 = 没有匹配的签名:STRUCT
, 细绳。支持的签名:ANY = ANY at [4:7] - swift - 当按钮已经快速更改时如何启用按钮
- go - 是否可以使用 golang 插件构建 salesforce 顶点类型的框架?
- pycharm - 需要 Microsoft Visual C++ 14.0
- reactjs - 绑定函数到 React 中的当前项目
- config - rasa 的小鸭模块
- php - 从我的网络服务器上的文件夹下载 zip 文件