我是java新手。这是我的第一个使用解析器的java代码,我能够通过
if(name != null && name.equals("Length"))
如何在名称值中传递多个值,如name.equals(“Length”,“Length1”,“Length3”)),我必须检查大约2000个值
下面是部分代码
if (file.exists()) {
Document doc = db.parse(file);
Element docEle = doc.getDocumentElement();
NodeList Line = docEle.getElementsByTagName("Lineno");
System.out.println("size " + Line.getLength());
if(Line != null && Line.getLength() > 0)
{
if(doc1.getDocumentElement() == null)
{
Element root1 = doc1.createElement("Line");
doc1.appendChild(root1);
}
for(int j = 0 ;j < nodeValue.getLength();j++)
{
Element el = (org.w3c.dom.Element) nodeValue.item(j);
String name = el.getAttribute("name");
String value = el.getAttribute("void");
String valueFromNode = el.getTextContent();
if(name != null && name.equals("id"))
{
ITEMID =valueFromNode;
}
if(name != null && name.equals("Length"))
{
// System.out.println("This has datcode " + ele);
datecode = "Yes";
cwi = valueFromNode;
// doc1.getDocumentElement().appendChild(doc1.importNode(imported, true));
}
}
}
}
答案 0 :(得分:1)
您可以将长度值填入ArrayList
,然后询问名称是否包含该数组。
例如:
ArrayList<String> lengths = new ArrayList<String>();
//add all lengths values into array
if(lengths.contains(name){
//do something
}
答案 1 :(得分:1)
将所有值放在ArrayList中并使用.contains()
:
List<String> strings = new ArrayList<>();
strings.add("Length");
然后:
if (name != null && strings.contains(name))
答案 2 :(得分:0)
如果我需要将单个String
与大型集合进行比较,因为它存在,我会使用HashSet<String>
。
考虑到测试相等性,我会检查我的String
对象是否在我的集合中。如果确实如此 - 而不是相等。
HashSet<String> compSet=new HashSet<String>();
//put strings to comparision
if(name!=null && compSet.contains(name)){
//hey it was equal.
}