Преобразование строки в массив Int в Java

1

У меня есть переменная "String line" в java, когда я даю

System.out.println(line);

Это дает мне результат как

233 81 335 332 165 56 82 316 123 247 328 348 177 89 86 1 252 228 34 350 116 91 193 106 272
121 56 203 179 259 25 163 101 77 116 135 29 257 254 400 195 192 20 59 270 350 116 92 6 87
22 230 126 207 393 73 399 57 96 93 9 196 172 111 192 234 315 59 35 351 390 239 88 339 145
17 161 330 328 198 47 194 107 231 312 260 118 369 344 114 355 99 117 199 219 5 255 336 124 

Вышеуказанный вывод состоит из 4 отдельных строк.

Теперь я хочу преобразовать эту строку в массив int, так что каждое место целочисленного массива будет содержать эти числа. Я попробовал Tokenizing и разбор его, но когда данные очень большие почти 200000 строк записи, это дает мне ошибку.

Какие-либо предложения? Помощь Pls.

  • 1
    Я предлагаю попробовать поискать что-то самостоятельно. Google - хорошее начало. Ответы на ложку не помогут вам стать лучше.
  • 0
    похоже это твоя домашняя работа?
Показать ещё 7 комментариев
Теги:
string
int

4 ответа

4
Лучший ответ

Используйте класс сканера Передайте свою строку (String) в конструктор Scanner и используйте методы hasNextInt() для проверки и nextInt() для извлечения и сохранения в ArrayList<Integer> с помощью loop.

  • 1
    Вы знаете, это, вероятно, одно из лучших предложений
1

просто для того, чтобы дать вам подсказку, инициализировать массив int, попытаться создать цикл для вас, разбить его по пробелу или какой разделитель вы хотите, затем использовать синтаксический анализ или преобразовать строку в int, чтобы вы могли добавить ее в массив из int, а затем добавить, что сплит-элемент в массив и массив печати, чтобы увидеть, что он добавлен.

базовый цикл и манипуляции с массивами, и вы будете здесь хорошими.

1

Вы можете передать эту String в сканер, а для каждого int, что сканер читает, разберите этот токен на int с помощью Integer.parseInt() и добавьте его в новый массив.

Scanner scan = new Scanner(yourString);
ArrayList<Integer> ints = new ArrayList<>();

while (scan.hasNext())
{
    ints.add(Integer.parseInt(scan.next()));
}

Имейте в виду, что будет генерировать исключение, если токен НЕ является int, поэтому вам нужно будет добавить некоторую проверку или окружить его в try-catch...

ints.toArray() преобразует ваш массив ArrayList в массив, если вы явно потребуете этого.

1

Понимая это как проблему домашнего задания, вместо того, чтобы давать ответ, я дам несколько указателей. Найдите String.split(), Integer.parseInt() и for.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню