如何使字符串比较不区分大小写?

时间:2014-03-10 06:52:04

标签: java

我正在尝试根据您的答案为其中一个程序编写代码。我想这样做,以便一些变量不区分大小写。例如,如果我的变量x等于"Me",我希望它也等于"me"。这可能吗?

到目前为止,这是我的代码:

import java.util.Scanner;

class Tutorial {
    public static void main (String args[]){
        System.out.println("Who goes there?");
        Scanner N = new Scanner(System.in);
        String name = N.next();
        if (name.equals("me") || name.equals("Me")){
                System.out.println("Well, good for you smartass.");
                System.exit(1);
        }else System.out.printf("Nice to meet you, %s.%n", name);   
        System.out.print("How are you doing?");
        Scanner d1 = new Scanner(System.in);
        String doing = d1.next();
        switch(doing){
        case "good": System.out.println("that is nice to hear.");
        case "Well": System.out.println("that is nice to hear.");
        case "bad" : System.out.println("That's ruff mate.");
        case "Awesome" : System.out.println("Nice");
        case "Terrible" : System.out.println("Sucks for you");

        }
    }
}

我不想为每个答案制作2个案例,其中一个是大写,另一个是小写。

稍微偏离主题问题。如何关闭扫描仪的资源泄漏?

2 个答案:

答案 0 :(得分:7)

值得一提的是String#toLowerCase

name.toLowerCase().equals("me");

或者只使用String#equalsIgnoreCase

name.equalsIgnoreCase("me");

答案 1 :(得分:0)

我认为没有办法不做区分大小写的变量。从您的代码中,您希望将字符串中的威胁答案转换为交换机并执行一些取决于答案的操作。

我认为最好的方法是从字符串类中对用户输入使用该字符串upper method

YourString =  YourString.toUpperCase();