检查字符串是否有效 ArrayList



我可能会收到一个String,它实际上是一个ArrayList,例如:String x = "["one", "two"]";

我想检查字符串是否是有效的数组列表。

if(key.startsWith("[") && key.endsWith("]"))语句是否有效,但我想知道是否有另一种更好的方法?

有没有更好的方法?

ArrayListtoString()实现来自AbstractCollection。

如果您看一下该函数(靠近底部),您会注意到它使用泛型类型E附加到内部StringBuilder。这是因为代码不知道您要在集合中放入哪种元素 - 它可能是Strings,如您的示例,也可能是更复杂的元素,如Maps。它将尝试调用每个元素的内部toString()函数,并默认为ObjecttoString()方法。

您可以从检查 String 是否以方括号[]开头和结尾开始,但对于任何进一步的内容,您都必须对放入ArrayList中的任何元素的toString()方法进行逆向工程。

ArrayList<String>的字符串表示形式(似乎是上面的示例)不引用其元素。因此,由于String可以包含任意数量的逗号和空格,因此无法区分元素。为了说明这一点,请考虑以下方案:

String s1 = "a, ";
String s2 = "b";
List<String> list = new ArrayList<>();
list.add(s1);
list.add(s2);
System.out.println(list.toString()); // [a, , b]

是有两个元素a,b还是两个元素a, b

相关内容

最新更新