文字列のリストにするか、または新しいオブジェクトに区切り文字でマッピング文字列

steve1337:

私はいくつかのデータを持つファイルは、セミコロンで区切られています。私は、行毎にファイルを読み取られたデータのすべての列を分離して、新しいオブジェクトにマップされますストリームを構築しようとしています。

data.txtを:

John;Smith;42;shopassistant
Clara;Lefleur;24;programmer

Person.class:

public class Person{
   String name;
   String lastName;
   int age;
   String job;
}

私はこのような何かを開始しました:

List<Person> people = Files.lines(Paths.get("src/data.txt"))....

何か案は?

ユージン:

AはScannerこの仕事のために、より有用であろう、そして以来、java-9これは仕事に非常に良くしています。

Pattern p = Pattern.compile("^(\\w+);(\\w+);(\\w+);(\\w+)$", Pattern.MULTILINE);
List<Person> persons = new Scanner(Paths.get("src/data.txt"))
            .findAll(p)
            .map(mr -> new Person(mr.group(1), mr.group(2), Integer.valueOf(mr.group(3)), mr.group(4)))
            .collect(Collectors.toList());

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=199761&siteId=1