如何申报人的对象,用绳子后,我用toSplit()方法拆呢?

问题描述 投票:3回答:1

我做了字符串本身,如:

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);

负责人: 姓名:John 姓:戴维森 日期:1988年5月5日 城市:贝尔格莱德

负责人: 姓名:Michael 姓:巴顿 日期:1968年1月1日 地点:克拉科夫

负责人: 名称:伊万 姓:Perkinson 日期:23/05/1986 地点:莫斯科

java
1个回答
3
投票

你会使用一个循环,并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]));
}
© www.soinside.com 2019 - 2024. All rights reserved.