Я пытаюсь преобразовать строку в ArrayList.Например, мое веб-приложение Struts2 возвращает строку с именованной строкой в формате, подобном следующему:
[A, BB, CCC, DDDD, 1, 0, 1] (что-то вроде этих строк)
Мне нужно преобразовать их в ArrayList, чтобы я мог предварительно заполнить некоторые формы на другой странице JSP.Я жестко закодировал метод для преобразования таких строк в список:
StringBuffer rowBuffer = new StringBuffer(row);
int startIndex = 0;
int endIndex = rowBuffer.indexOf(",") - 1;
rowBuffer.deleteCharAt(rowBuffer.indexOf("["));
rowBuffer.deleteCharAt(rowBuffer.indexOf("]"));
while(startIndex != -1 && endIndex != -1 && startIndex < endIndex)
{
String subString = rowBuffer.substring(startIndex, endIndex);
if(subString.contains(","))
{
rowList.add(" ");
startIndex = endIndex + 1;
endIndex = rowBuffer.indexOf(",", startIndex);
}
else
{
rowList.add(subString);
startIndex = endIndex + 2;
endIndex = rowBuffer.indexOf(",", startIndex + 1);
}
if(endIndex == -1)
{
rowList.add(rowBuffer.substring(startIndex));
break;
}
}
Это прекрасно работает в тех случаях, когда все поля заполнены.Однако, допустим, у меня есть строка, которая выглядит следующим образом: [A, BB,,, 1, 0, 0] (3-е и 4-е поля отсутствуют), затем я получаю что-то, что не работает (пустые элементы нене правильно регистрируется, и размер списка составляет 6, тогда как он должен быть 7).Есть ли более элегантное решение, чем жесткое кодирование?Если нет, может ли кто-нибудь указать мне правильное направление, как обрабатывать дела с пустыми полями?Спасибо!