将字符串的部分转换为字符以在if / else语句中使用

时间:2016-10-06 22:32:19

标签: java

我在学校做作业虽然我已经通过整本书面材料检查过,但在我的生活中我无法找到如何做到这一点。我们应该输入像" 0123 B"并且字符串末尾的B表示代表青铜,然后将++添加到青铜整数。然后打印奖牌数量。

我的问题是我试图从字符串(B,S或G)中取出最后一个字符,然后添加到那个字符串,但问题是,它是字符串而不是字符串字符。所以我不能使用medal.charAt(5)。

以下是我的代码:

已编辑,代码正在解决

    import java.util.Scanner;

public class CountMedals {
    public static void main(String[] args) {
        int bronze = 0;
        int silver = 0;
        int gold = 0;
        int totalMedals = 0;
        int incorrectMedals = 0;
        char gol = 'G';
        char sil = 'S';
        char bro = 'B';
        String medal = " ";

        Scanner in = new Scanner(System.in);
        System.out.println("Please enter the event number followed by the first letter of the medal type." +
                " (I.E. \"0111" + " B\"). Type exit once completed");
        while (!medal.equals("")) {
            medal = in.nextLine();
            if (medal.charAt(medal.length() - 1) == bro)
            {
                bronze++;
                totalMedals++;
            }
            else if (medal.charAt(medal.length() - 1) == sil)
            {
                silver++;
                totalMedals++;
            }
            else if (medal.charAt(medal.length() - 1) == gol)
            {
                gold++;
                totalMedals++;
            }
            else if (medal.equals("exit"))
            {
                System.out.println("Gold medals: " + gold);
                System.out.println("Silver medals: " + silver);
                System.out.println("Bronze medals: " + bronze);
                System.out.println("Total medals: " + totalMedals);
                System.out.println(incorrectMedals + " incorrect medal(s) entered.");
            }
                else{
                incorrectMedals++;
            }
        }
    }
}

1 个答案:

答案 0 :(得分:3)

只需将golsilbro改为char s而不是String s。

char gol = 'G';
char sil = 'S';
char bro = 'B';

在更改之后,您应该可以使用

medal.charAt(5) == gol

没问题。

修改

为了使其更通用,您可以使用

medal.charAt(medal.length() - 1) == gol

将始终拉出最后一个字符,从而避免输入少于5个索引的错误。