java - 检查 String 是否有效 ArrayList
问题描述
我可能会收到一个String
实际上是一个ArrayList
例如:String x = "["one", "two"]";
我想检查字符串是否是有效的 ArrayList。
if(key.startsWith("[") && key.endsWith("]"))
if 语句有效,但我想知道是否有另一种更好的方法?
有没有更好的方法?
解决方案
的toString()
实现ArrayList
来自AbstractCollection。
如果您查看该函数(靠近底部),您会注意到它使用泛型类型E
附加到 internal StringBuilder
。这是因为代码不知道您将在集合中放入哪种元素 - 它可能是String
s,如您的示例中所示,也可能是更复杂的东西,如Map
s。它将尝试调用每个元素的内部toString()
函数并默认为Object
'toString()
方法。
您可以首先检查字符串是否以方括号[
和开头和结尾]
,但对于任何进一步的事情,您必须对toString()
您放入ArrayList
.
an 的字符串表示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
?
推荐阅读
- node.js - Puppeteer chrome 允许多个文件下载
- mongodb - 副本集重新配置在 mongo 中不起作用
- javascript - lodash.differenceBy 在香草 JavaScript 中?
- python - Scipy稀疏矩阵行广播
- cucumber - 是否可以从 JSON 文件传递 Cucumber 功能中的参数值?
- reactjs - ReactNative Redux 导航道具未更新
- java - 改造 2 类文件问题
- html - 如何在reactjs中将插入符号位置放在contentEditable div的末尾?
- scala - 将 scala 数据帧转换为具有数组类型列的数据集
- c# - 实体框架核心闭表(代码优先)