我正在使用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。