Я не уверен, что полностью понимаю вопрос, но исходя из ваших идентичных arr[i] = Integer.parseInt(lines[i]);
строк, я предполагаю, что вы хотите разделить на ;
в одном случае и разделить на ->
в другом случае. Ваши lines[i]
- это отдельные String
строки, над которыми вы зацикливаетесь, поэтому вы можете сделать что-то вроде этого:
if (i == 0) {
String[] splitBySemicolon = lines[i].split(";");
// Get the integer before the ';':
arr[i] = Integer.parseInt(splitBySemicolon[0]);
// or alternatively:
// Get the integer after the ';':
arr[i] = Integer.parseInt(splitBySemicolon[1]);
}
// Minor note: you loop in the range [0, size),
// so you can just use an else here since i cannot be negative
else{
String[] splitByArrow = lines[i].split("->");
// Get the integer before the '->':
arr[i] = Integer.parseInt(splitByArrow[0]);
// or alternatively:
// Get the integer after the '->':
arr[i] = Integer.parseInt(splitByArrow[1]);
}
Например, допустим, что ваш массив строк содержит ["1;header", "3->something", "4->somethingMore"]
, код выше (использование [0]
для индексации строковых массивов) приведет к arr = [1, 3, 4]
.
Попробуйте онлайн.
Но, не зная вашего фактического lines
массива, я могу только догадываться о вашем предполагаемом поведении.