Как получить значения из массива и сохранить их в отдельные переменные с помощью Java?

#java

#java

Вопрос:

У меня есть четыре года, хранящиеся внутри этого массива с индексом 0. Я хотел бы извлечь эти данные и сохранить их внутри отдельных переменных, например, массив dateParts состоит из 2020,2019,2018,2017.Как бы мне извлечь эти данные и сохранить их в моих переменных year. Я пробовал типичный String year2020 = years[0], year2019 = [1]; , но это вызовет ошибку out of bound, потому что все четыре года хранятся в индексе 0. Они НЕ являются отдельными индексами.

 String [] dateParts = dates.split("-");
firstyear = dateParts[0];

String year2020, year2019 year2018, year2017;
  

Комментарии:

1. Что это за содержимое dates ?

2. Данные JSON, которые были преобразованы в строку.

3. Я имел в виду, что такое буквальное содержимое dates ? Если у нас есть точная строка, мы, скорее всего, сможем воспроизвести вашу проблему.

Ответ №1:

Если у вас есть фиксированное количество разных переменных, в которые вы хотите сохранить свои элементы, боюсь, вам придется делать это вручную:

 year2020 = dateParts[0];
year2019 = dateParts[1];
year2018 = dateParts[2];
year2017 = dateParts[3];
  

Ваш вопрос не ясен, хотя и приведенное выше решение предполагает 2020,2019,2018 и 2017 отдельные элементы в dateParts массиве.

Если вы говорите "2020,2019,2018,2017" , что хранится одна строка dataParts[0] , и вы хотели бы извлечь их по отдельности, вы могли бы добиться этого, используя String.split() метод с "," разделителем as .

 String years[] = dateParts[0].split(",");

year2020 = years[0];
year2019 = years[1];
year2018 = years[2];
year2017 = years[3];
  

Редактировать:

На основе отредактированного вопроса:

 String years[] = firstyear.split(",");

year2020 = years[0];
year2019 = years[1];
year2018 = years[2];
year2017 = years[3];
  

Комментарии:

1. Да, «2020,2019,2018,2017» — это одна строка, хранящаяся в dataParts [0], и я хотел бы извлечь их по отдельности. Я попробовал код, который вы предоставили, но это вызвало ошибку out of bound. индекс 0 содержит все 4 года. Вот почему. То, что вы говорите, сработало бы, если бы 4 года хранились в отдельных индексах, но это не так. Все они хранятся под индексом 0.

2. Кстати, это ошибка. java.lang. Исключение ArrayIndexOutOfBoundsException: длина = 1; индекс = 1

3. Вы использовали второй код? Используйте только это для вашего решения.

4. Если этот ответ помог, пожалуйста, подумайте о том, чтобы пометить его как таковой. Если нет, не стесняйтесь, дайте мне знать.

5. Я отредактировал свой ответ. Попробуйте это. Если это не сработает, дайте мне знать.