我正在使用Android。我有一个字符串数据的ArrayList,并将整个Arraylist作为单个字符串保存在本地数据库中。后来我从db中获取此字符串并将其转换为数组列表,

情况1:

  String dbString=[10,5,34,67];  // array list as string
  String replace = dbString.toString().replace("[", "");
            String replace1 = replace.replace("]", "");
            mysignimgList = new ArrayList<String>(Arrays.asList(replace1.split(",")));

情况2:
  String dbString2=[];  //empty array list as string
  String replace = dbString2.toString().replace("[", "");
            String replace1 = replace.replace("]", "");
            mysignimgList2 = new ArrayList<String>(Arrays.asList(replace1.split(",")));

但是在第二种情况下,即使arraylist中没有项目,其大小也将变为mysignimgList2.size()= 1。

最佳答案

在你的情况2

String dbString2="[]";

在您的代码中,它试图将其拆分为逗号(,)作为分隔符
如果找到分隔符,则会将其拆分为多个部分。但是,如果找不到任何分隔符,它将在返回列表中将给定的字符串分配为单个字符串。

在您的情况下,一个String数组,其中一个元素的值为“” ,或者说空字符串

String dbString2="[]";替换String dbString2="[,]";

在这种情况下,它将返回没有元素的大小为0。

10-06 13:40
查看更多