Если отдельные строки могут включать запятую, а затем пробел, то это было бы невозможно. Массивы с несколькими строками [] могут отображаться в одной и той же плоской строке, а обратная функция не существует.
Однако вы отметите в комментарии, что ваши строки не могут включать разделитель запятой. Вы можете разбить плоскую строку обратно на исходные подстроки, используя «,» (запятая, пробел) в качестве разделителя.
API, поддерживающие этот стандарт, включают стандартный метод Java String.split()
и класс Guava Splitter
.
Вот пример с split()
метода в Java:
public static void main(String[] args) {
String[] strs = new String[] { "Foo", "Bar", "Baz" };
String joined = Arrays.toString(strs);
String joinedMinusBrackets = joined.substring(1, joined.length() - 1);
// String.split()
String[] resplit = joinedMinusBrackets.split(", ");
for (String s : resplit) {
System.out.println(s);
}
}
А вот пример с Splitter
класса гуавы в:
public static void main(String[] args) {
String[] strs = new String[] { "Foo", "Bar", "Baz" };
String joined = Arrays.toString(strs);
String joinedMinusBrackets = joined.substring(1, joined.length() - 1);
// Guava Splitter class
List<String> resplitList = Splitter.on(", ").splitToList(joinedMinusBrackets);
for (String s : resplitList) {
System.out.println(s);
}
}
'toString' не следует использовать для сериализации/десериализации. Найдите лучший инструмент (например, JSON). –
Почему вы не сохраняете массив непосредственно в сеансе? – Pshemo
@Pshemo im new для java, поэтому все, что я знаю, это то, что я могу сохранить только строку, int и boolean для сеанса. Я не пытался сохранить массив. – user3360031