Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将字符串数组转换为ArrayList_Java - Fatal编程技术网

Java 如何将字符串数组转换为ArrayList

Java 如何将字符串数组转换为ArrayList,java,Java,可能重复: 我有这个字符串: ["word1","word2","word3","word4"] 上面的文本不是数组,而是通过GCM(Google Cloud Messaging)通信从服务器返回的字符串。更具体地说,在GCM类中,我有: protected void onMessage(Context context, Intent intent) { String message = intent.getExtras().getString("cabmate"); } 字

可能重复:


我有这个
字符串

["word1","word2","word3","word4"]
上面的文本不是数组,而是通过GCM(Google Cloud Messaging)通信从服务器返回的字符串。更具体地说,在GCM类中,我有:

protected void onMessage(Context context, Intent intent) {

String message = intent.getExtras().getString("cabmate");

   }
字符串
消息的值是
[“word1”、“word2”、“word3”、“word4”]

有没有一种方法可以在Java中的
列表
数组列表
中转换它

Arrays.asList(String[])
返回
列表

返回
列表

字符串wordString=“[\“word1\”、\“word2\”、\“word3\”、\“word4\””;
String[]words=wordString.substring(1,wordString.length()-2).replaceAll(“\”,”).split(“,”);
List wordList=new ArrayList();
Collections.addAll(单词列表,单词);
这将满足您的要求。请注意,我故意在
“,”
上拆分,为了删除空白,在for each循环中对每个字符串调用
.trim()
,然后将其添加到
列表中

字符串wordString=“[\“word1\”,\“word2\”,“word3\”,“word4\”; String[]words=wordString.substring(1,wordString.length()-2).replaceAll(“\”,”).split(“,”); List wordList=new ArrayList(); Collections.addAll(单词列表,单词);
这会满足你的要求。请注意,我故意在
,“
上拆分以删除空白,更谨慎的做法是在for each循环中的每个字符串上调用
.trim()
,然后添加到
列表中

类似的内容:

/*
@invariant The "Word" fields cannot have commas in thier values or the conversion
to a list will cause bad field breaks. CSV data sucks...
*/
public List<String> stringFormatedToStringList(String s) {
  // oneliner for the win:
  return Arrays.asList(s.substring(1,s.length()-1).replaceAll("\"","").split(","));
  // .substring  removes the first an last characters from the string ('[' & ']')
  // .replaceAll removes all quotation marks from the string (replaces with empty string)
  // .split brakes the string into a string array on commas (omitting the commas)
  // Arrays.asList converts the array to a List
}
/*
@“Word”字段的值或转换中不能有逗号
添加到列表将导致错误的字段中断。CSV数据太糟糕了。。。
*/
公共列表StringFormattedToStringList(字符串s){
//One Liner赢取:
返回Arrays.asList(s.substring(1,s.length()-1).replaceAll(“\”,”).split(“,”);
//.substring从字符串(“[”&“])中删除第一个和最后一个字符
//.replaceAll删除字符串中的所有引号(替换为空字符串)
//.将字符串拆分为逗号上的字符串数组(省略逗号)
//Arrays.asList将数组转换为列表
}
类似这样的内容:

/*
@invariant The "Word" fields cannot have commas in thier values or the conversion
to a list will cause bad field breaks. CSV data sucks...
*/
public List<String> stringFormatedToStringList(String s) {
  // oneliner for the win:
  return Arrays.asList(s.substring(1,s.length()-1).replaceAll("\"","").split(","));
  // .substring  removes the first an last characters from the string ('[' & ']')
  // .replaceAll removes all quotation marks from the string (replaces with empty string)
  // .split brakes the string into a string array on commas (omitting the commas)
  // Arrays.asList converts the array to a List
}
/*
@“Word”字段的值或转换中不能有逗号
添加到列表将导致错误的字段分隔符。CSV数据会被吸收。。。
*/
公共列表StringFormattedToStringList(字符串s){
//One Liner赢取:
返回Arrays.asList(s.substring(1,s.length()-1).replaceAll(“\”,”).split(“,”);
//.substring从字符串(“[”&“])中删除第一个和最后一个字符
//.replaceAll删除字符串中的所有引号(替换为空字符串)
//.将字符串拆分为逗号上的字符串数组(省略逗号)
//Arrays.asList将数组转换为列表
}

s/be s.length-1;子字符串是开始/结束,而不是开始/长度。结束索引是独占的。如果其中任何一个值中有逗号,这将非常糟糕。我知道它是开始/结束索引;我在思考-2或-1。我已经修好了索引。至于“文字”中的逗号,这是CSV数据的问题,逗号会把它搞得一团糟。CSV格式的输入数据超出了我的控制范围。我只是假设“word”字段中没有逗号。s/be s.length()不是s.length。非常感谢您,感谢您解释代码的含义,它工作得非常好。.s/be s.length-1;子字符串是开始/结束,而不是开始/长度。结束索引是独占的。如果其中任何一个值中有逗号,这将非常糟糕。我知道它是开始/结束索引;我在思考-2或-1。我已经修好了索引。至于“文字”中的逗号,这是CSV数据的问题,逗号会把它搞得一团糟。CSV格式的输入数据超出了我的控制范围。我只是假设“word”字段中没有逗号。s/be s.length()不是s.length。非常感谢您,感谢您解释代码的含义,工作得非常好。哦,等等,您说得对。。。这更像是…哦,等等,你说得对。。。它更像是或…错了;输入是单个字符串。错误;输入是单个字符串。错误;输入是一个字符串。@SoftwareMonkey我的答案,以及您评论的所有其他内容都是在OP编辑之前发布的,说明它是一个字符串,正在编辑我的字符串。OP提供的示例字符串中不存在分隔符
,“
”。分隔符是一个
,“
字符。您还复制了我的答案……新的ArrayList(Arrays.asList(新字符串[]{“Apple”,“Mango”}));使用上面的行。它将返回ArrayList错误;输入是一个字符串。@SoftwareMonkey我的答案,以及您评论的所有其他内容都是在OP编辑之前发布的,说明它是一个字符串,正在编辑我的字符串。OP提供的示例字符串中不存在分隔符
,“
”。分隔符是一个
,“
字符。您还复制了我的答案……新的ArrayList(Arrays.asList(新字符串[]{“Apple”,“Mango”}));使用上面的行。它将返回ArrayList