如何将字符串与ArrayList中对象的名称进行比较?

时间:2014-10-11 04:40:44

标签: java oop arraylist string-comparison

很抱歉,如果这个问题有点难以理解。我需要将一个字符串(currToken)与ArrayList中对象的字符串名称进行比较,但由于某种原因,这很难实现。

System.out.println(currToken.compareTo(arrays.get(0).name));
System.out.println("Array detected");
int i =0;
for(i=0;i<arrays.size()-1;i++)
{
 if(currToken.compareTo(arrays.get(i).name)==0)
 {
    System.out.println("asdf found array");
    break;
 }
}

这是我用来比较它们的代码。当然有一个程序,但它真的很长,所以我不想压倒任何人。希望这只是一个愚蠢的错误。

让我感到非常恼火的是,如果我只是忽略循环并将currToken与arrays.get(0).name本身进行比较,那么结果为0,这意味着它是真的。然而,当它进入循环并完成同样的事情时,它似乎无法正常工作。

&#34;阵列&#34;是包含ArraySymbol对象的LinkedList,我在下面提供了它的类。如果有人能够指出我做错了什么,我真的很感激它!

  package apps;

/**
 * This class encapsulates a (name, array of integer values) pair for an array variable. 
 * The name is a sequence of one or more letters. 
 * 

 *
 */
 public class ArraySymbol {

/**
 * Name, sequence of letters
 */
public String name;

/**
 * Array of integer values
 */
public int[] values;

/**
 * Initializes this symbol with given name, and sets values to null.
 * 
 * @param name Name of array
 */
public ArraySymbol(String name) {
    this.name = name;
    values = null;
}

/* (non-Javadoc)
 * @see java.lang.Object#toString()
 */
public String toString() {
    if (values == null || values.length == 0) {
        return name + "=[ ]";
    }
    StringBuilder sb = new StringBuilder();
    sb.append(name);
    sb.append("=[");
    sb.append(values[0]);
    for (int i=1; i < values.length; i++) {
        sb.append(',');
        sb.append(values[i]);
    }
    sb.append(']');
    return sb.toString();
}

/* (non-Javadoc)
 * @see java.lang.Object#equals(java.lang.Object)
 */
public boolean equals(Object o) {
    if (o == null || !(o instanceof ArraySymbol)) {
        return false;
    }
    ArraySymbol as = (ArraySymbol)o;
    return name.equals(as.name);
}

}

0 个答案:

没有答案