简体   繁体   English

如何在内容中使用引号拆分String

[英]How to split String with quotes in content

I have a String which looks like this: 我有一个看起来像这样的字符串:

"["xxx","yyy","zzz"]"

Can anyone give me a hint on how to convert it to an array that looks like this: 任何人都可以给我一个如何将其转换为如下所示的数组的提示:

somestring[0]="xxx"
somestring[1]="yyy"
somestring[2]="zzz"

The expression 表达方式

"[\"xxx\",\"yyy\",\"zzz\"]".replaceAll( "[\\\"\\[\\]]", "" ).split( "," );

will result in an array: 将导致一个数组:

a[0] = "xxx";
a[1] = "yyy";
a[2] = "zzz";

I hope... 我希望...

[1 hour later...] [1小时后......]

I confirm: 我确定:

public static void main(String[] args) {
    for( String part : "[\"xxx\",\"yyy\",\"zzz\"]".replaceAll( "[\\\"\\[\\]]", "" ).split( "," )) {
        System.out.println( part );
    }
}

outputs: 输出:

xxx
yyy
zzz

Dirty hack 肮脏的黑客

String s1="[\"xxx\",\"yyy\",\"zzz\"]";
        String s2= s1.replaceAll("\"", "" );
        s2=s2.replace("[", "");
        s2=s2.replace("]", "");
        String ar[] =s2.split(",");

Looking at input string pattern, substring will also work: 查看输入字符串模式, substring也将起作用:

String inStr = "\"[\"xxx\",\"yyy\",\"zzz\"]\"";
String [] inArray = inStr.substring(0,inStr.length()-2).substring(2).split(",");
System.out.println(Arrays.toString(inArray));

Will print: 将打印:

    ["xxx", "yyy", "zzz"]

If you wish to remove quotes ("), then write like: 如果你想删除引号(“),那么写如下:

String inStr = "\"[\"xxx\",\"yyy\",\"zzz\"]\"";
String [] inArray1 = inStr.substring(0,inStr1.length()-2)
                          .substring(2).replaceAll("\"","").split(",");
System.out.println(Arrays.toString(inArray1));

Or you can do: 或者你可以这样做:

String inStr = "\"[\"xxx\",\"yyy\",\"zzz\"]\"";
String [] inArray = inStr.replaceAll( "[\\\"\\[\\]\"]", "").split( "," );
System.out.println(Arrays.toString(inArray0));

The above two will print: 以上两个将打印:

    [xxx, yyy, zzz]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM