java - 将字符串数组转换回字符串数组

标签 java arrays string

我使用 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/

相关文章:

javascript - 将js对象中的所有值更改为0

c - string.h的strcmp和我自己实现的strcmp的区别

python - 将字符串转换为列表,但如果满足某些条件则连接元素

java - NoClassDefFoundError javax/jms/Message 即使在指定类路径时也是如此

Java 双重检查锁定

arrays - 如何使用可选的多个条件在 Swift 中过滤数组?

string - 如何使用 Bash 将多个空格替换为单个空格?

java - 在 Java 中围绕 char 序列分割字符串

java - 如何在java程序中解决两部电梯的场景

javascript - 如何更改 Reactive Array 中的值并重新运行 helper