如何在 java 中不换行地读取数据集

How to read data set without line break in java

我有如下数据集,

chris~88~alex~23~nivya~34~simon~33...........

此数据代表一些人的姓名和年龄。我如何将他们的每个名字和年龄捕获到一个 pojo 中并保存在数据库中。我需要知道我们如何使用 stringutils 从这个大字符串中获取他们的姓名和年龄。

您可以简单地使用 String class 中的拆分方法来完成。按字符 ~ 拆分,这将 return array of string。其中偶数索引值将是名称,奇数值将是年龄。然后你可以 map 到 pojo class 的对象并创建列表。

将字符串转换为姓名和年龄的 POJO 的代码:

public static void main(String[] args) {
    String a = "chris~88~alex~23~nivya~34~simon~33";
    String[] nameAge = a.split("~");

    List<Person> persons = IntStream.range(0, nameAge.length).filter(x -> x % 2 == 0)
        .mapToObj(i -> new Person(nameAge[i], Integer.valueOf(nameAge[i + 1]))).collect(Collectors.toList());

    System.out.println(persons);
  }

POJO :

class Person {

  String name;

  int age;

  public Person(String name, int age) {
    this.name = name;
    this.age = age;
  }

  @Override
  public String toString() {
    return "Person [name=" + name + ", age=" + age + "]";
  }
}

我不知道您使用的具体数据库是什么,但这里有一种使用正则表达式拆分数据集的可能方法:

String dataset = "chris~88~alex~23~nivya~34~simon~33~tim~34~berta~12~jon~55";
String[] splitDataset = dataset.split("~");

splitDataset 现在包含所有甚至 i 的名称和所有不均匀索引的相应年龄 (i+1)。