为什么第一个字符不是大写的?

时间:2015-05-24 22:45:08

标签: java string char uppercase lowercase

我找到了应该将第一个字符从小写字母更改为大写字母的语法。

由于某些原因,我的程序不会!当我键入'm'而不是'M'时。

我在这里做错了什么?

public static void main(String[] args) {
    System.out.print("Enter two characters: ");

    Scanner input = new Scanner(System.in);
    String twoChar = input.nextLine();

    if(twoChar.length() > 2 || twoChar.length() <= 1){
        System.out.println("You must enter exactly two characters");
        System.exit(1);
    }

    char ch = Character.toUpperCase(twoChar.charAt(0));

    if(twoChar.charAt(0) == 'M'){
        if(twoChar.charAt(1) == '1'){
            System.out.println("Mathematics Freshman");
        }else if(twoChar.charAt(1) == '2'){
            System.out.println("Mathematics Sophomore");
        }else if(twoChar.charAt(1) == '3'){
            System.out.println("Mathematics Junior");
        }else if(twoChar.charAt(1) == '4'){
            System.out.println("Mathematics Senior");
        }
    }

3 个答案:

答案 0 :(得分:4)

而不是

if(twoChar.charAt(0) == 'M'){

使用

if(ch == 'M'){

你正在获得大写字符,但之后却没有使用它。

答案 1 :(得分:1)

您正在将字符的大写版本分配给变量ch,然后您不会检查ch;你正在检查字符串中的字符。该角色与之前的角色相同:它没有改变。

所以不要检查:

if (twoChar.charAt(0) == 'M') {

检查:

if (ch == 'M') {

答案 2 :(得分:0)

不使用局部变量

您没有使用此处大写的char ch

char ch = Character.toUpperCase(twoChar.charAt(0));
if(twoChar.charAt(0) == 'M'){

您可以使用本地变量 ch(如

)来解决此问题
char ch = Character.toUpperCase(twoChar.charAt(0));
if (ch == 'M') {

或将toUpperCase来电置于

// char ch = Character.toUpperCase(twoChar.charAt(0));
if (Character.toUpperCase(twoChar.charAt(0)) == 'M') {

或使用逻辑或类似的

char ch = twoChar.charAt(0);
if (ch == 'M' || ch == 'm') {