我使用 Arrays.toString(variable) 将字符串数组转换为字符串并将其保存在 session 中。现在我想将其转换回字符串数组。我怎么做?
我希望是否有一种更简单的方法,比如将其解析为字符串数组。
这是字符串的示例。它由逗号分隔。
[Any, Resolved (1), ANS MACH / LEFT MSG (1)]
更新:
建议我不要使用 toString 来序列化数组。但由于我处理的是简单数组,所以我仍然选择使用它。
最佳答案
如果各个字符串本身可能包含一个逗号后跟一个空格,那么这是不可行的。多个 String[] 数组可以映射到同一个平面 String,并且不存在逆函数。
但是,您在注释中注意到您的字符串不能包含逗号分隔符。您可以使用“,”(逗号、空格)作为分隔符,将扁平字符串拆分回原始子字符串。
支持此功能的 API 包括标准 Java String.split()
方法,和Guava的Splitter
类。
下面是 Java 的 split()
方法的示例:
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 );
}
}
这是 Guava 的 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 );
}
}
关于java - 将字符串数组转换回字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31923417/