基本搜索数组

时间:2011-04-27 05:24:32

标签: java

Name = Input.next();

for(int K = 0; K < CurrentCount ; K++) {
  if( ArrayList[K].LastNamePlayer == Name)
    System.out.println(
      "Name " + ArrayList[K].GetName() + ArrayList[K].GetLastName());

我可以访问数组中的所有值,但是当我设置条件时,它应该返回任何值。

2 个答案:

答案 0 :(得分:2)

您正在通过引用比较字符串。换句话说,您正在检查引用ArrayList[K].LastNamePlayerName是否是对完全相同的对象的引用。我怀疑你想要:

if (ArrayList[K].LastNamePlayer.equals(Name))

将检查字符串相等 ...它们是否引用相等的字符串:代表相同字符序列的字符串。

请注意,这些变量名称对于Java来说是非常规的 -​​ 通常您使用驼峰大小写代替Pascal大小写namelastNamePlayer等。同样,方法名称通常为getName()而不是GetName()

此外,看起来ArrayList是一个数组,而不是ArrayList,所以这是一个非常误导性的名称。如果它描述了代表的而不是存储,它会更有用。

答案 1 :(得分:1)

而不是

if( ArrayList[K].LastNamePlayer == Name)

if( ArrayList[K].LastNamePlayer.equals(Name))