0

我需要这个循环的帮助。基本上我想做的是运行一个循环。当数组字符串 champs 包含字符“B”作为其首字母时,它将同时显示时间和冠军。

有人能告诉我我做错了什么或者为什么它没有出现吗?我从中收到的输出只是“Time Champs”

public static void displayTeam(short[] time, String[] champs){
    System.out.println("time     Champs");
    for(int a= 0; a < time.length; a++){
        char fletter=champs[a].charAt(0);
        if("B".equals(fletter)){
            System.out.println(time[a] + "     " + champs[a]);
        }
    }
}

感谢所有帮助和贡献的人。

4

2 回答 2

8

替换这个:

if("B".equals(fletter))

有了这个:

if('B' == fletter)

==用于原始值是安全的,例如char.

由于fletter是 a char,因此您的代码所发生的事情相当复杂。乍一看,人们可能想知道这甚至是如何编译的。发生的事情是以String.equalsaObject作为参数。因为fletter是 a char,所以它被自动装箱成一个Character对象。然后 String"B"检查它是否等于它的参数,注意到它的参数甚至不是 a String,并返回false

于 2013-04-18T04:21:46.130 回答
4

这不起作用,因为 String 和 char 之间存在差异。不同之处在于一个是原始值,一个不是,并且通过使用双引号而不是单引号,您正在创建一个字符串而不是字符使用单引号:)

于 2013-04-18T04:22:02.020 回答