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());
我可以访问数组中的所有值,但是当我设置条件时,它应该返回任何值。
答案 0 :(得分:2)
您正在通过引用比较字符串。换句话说,您正在检查引用ArrayList[K].LastNamePlayer
和Name
是否是对完全相同的对象的引用。我怀疑你想要:
if (ArrayList[K].LastNamePlayer.equals(Name))
将检查字符串相等 ...它们是否引用相等的字符串:代表相同字符序列的字符串。
请注意,这些变量名称对于Java来说是非常规的 - 通常您使用驼峰大小写代替Pascal大小写name
,lastNamePlayer
等。同样,方法名称通常为getName()
而不是GetName()
。
此外,看起来ArrayList
是一个数组,而不是ArrayList
,所以这是一个非常误导性的名称。如果它描述了代表的而不是存储,它会更有用。
答案 1 :(得分:1)
而不是
if( ArrayList[K].LastNamePlayer == Name)
写
if( ArrayList[K].LastNamePlayer.equals(Name))