Предполагая, что класс Velocity
выглядит так:
class Velocity {
private int firstNumber;
private int secondNumber;
public Velocity(int firstNumber, int secondNumber) {
super();
this.firstNumber = firstNumber;
this.secondNumber = secondNumber;
}
public int getFirstNumber() {
return firstNumber;
}
public void setFirstNumber(int firstNumber) {
this.firstNumber = firstNumber;
}
public int getSecondNumber() {
return secondNumber;
}
public void setSecondNumber(int secondNumber) {
this.secondNumber = secondNumber;
}
public String toString() {
return "[" + firstNumber + ", " + secondNumber + "]";
}
}
, вам в основном придется go шаг за шагом:
- удалить вводный тег
ball_velocities:
из String
, который вы хотите разделить, split
результат произвольным количеством пробелов, затем split
каждый результат этого запятой, - проанализировать результаты, чтобы
int
s - создать экземпляр
Velocity
с результатами анализа и, наконец, - добавить каждый экземпляр
Velocity
к List<Velocity>
, что можно сделать, например, следующим образом:
public static void main(String[] args) throws ParseException {
String data = "ball_velocities:45,500 46,500 47,500";
List<Velocity> velocities = new ArrayList<>();
// remove the intro tag and then split by whitespace(s)
String[] numberPairs = data.replace("ball_velocities:", "").split("\\s+");
// handle each result (which still consists of two numbers separated by a comma
for (String numberPair : numberPairs) {
// that means, split again, this time by comma
String[] numbers = numberPair.split(",");
// parse the results to ints
int firstNum = Integer.parseInt(numbers[0]);
int secondNum = Integer.parseInt(numbers[1]);
// instantiate a new Velocity with the results and add it to the list
velocities.add(new Velocity(firstNum, secondNum));
}
// print the list using the `toString()` method of Velocity
velocities.forEach(System.out::println);
}
В этом примере будет напечатано
[45, 500]
[46, 500]
[47, 500]