String s = str.split(",")[n].trim();
Я предлагаю сделать карту, если позиция случайная:
Map<Integer, String> m = new HashMap<Integer, String>();
for (String s : str.split(",")) {
s = s.trim();
int keyvalstart = -1;
for (int i = 0; i < s.length(); i++) {
if (!Character.isDigit(i)) {
keyvalstart = i;
break;
}
}
if (keyvalstart == -1) continue;
String s_id = s.substring(0, keyvalstart - 1);
String keyvals = s.substring(keyvalstart);
int id = Integer.parseInt(s_id);
m.put(id, keyvals);
}
Карта, таким образом, будет содержать список идентификаторов людей с соответствующими им строками значений. Если вы хотите хранить имена только в качестве элементов значения карты:
Map<Integer, String> m = new HashMap<Integer, String>();
for (String s : str.split(",")) {
s = s.trim();
int keyvalstart = -1;
for (int i = 0; i < s.length(); i++) {
if (!Character.isDigit(i)) {
keyvalstart = i;
break;
}
}
if (keyvalstart == -1) continue;
String s_id = s.substring(0, keyvalstart - 1);
int id = Integer.parseInt(s_id);
String keyvals = s.substring(keyvalstart);
int valstart = keyvals.indexOf("name: ") + "name: ".length();
String name = keyvals.substring(valstart);
m.put(id, name);
}
Было бы проще использовать StringTokenizer во втором примере для пар ключ = значение, если вы хотите хранить больше данных, но я не знаю, каков ваш разделитель. Вам также необходимо сохранить объекты в качестве значений карты для хранения информации.