当前位置: 首页 > 知识库问答 >
问题:

Java开关Case语句中不区分大小写的匹配

温镜
2023-03-14

我想知道是否有一种方法可以在java switch case语句中执行不区分大小写的匹配。默认实现区分大小写。请参见下面的示例。

public class SwitchCaseTest {

    /**
     * @param args
     */
     public static void main(String[] args) {

        switch ("UPPER") {
            case  "upper" :
                System.out.println("true");
                break;

            default:
                System.out.println("false");
                break;
        }
    }
}

所以上面的语句返回false作为输出。我正在尝试使它适用于不区分大小写的匹配,比如String。equalsIgnoreCase()就可以了。我尝试将字符串文字转换为小写,然后进行比较。但他无法做到这一点。

共有3个答案

翁和正
2023-03-14

当使用开关语句时,您必须使用“中断;”才能退出语句,所以只需使用两种情况,一种没有中断。

开关(选择)

        {

            case 'I':

            case 'i':

                //Insert a name

                System.out.print("Insert a name to add to the list: ");

                input.nextLine();

                name = input.nextLine();

                nameList.insert(name);

                System.out.println();

                break;

这样,如果输入“我”或“我”,两种情况都会有相同的结果。

孔鸿远
2023-03-14

你试着把所有东西都变成大写或小写

String str = "something".toUpperCase();
switch(str){
case "UPPER":
}

String str = "something".toLowerCase();
swtich(str){
case "lower":
}

或者更好地使用enum(注意,这只能从Java7中实现)

enum YourCases {UPPER1, UPPER2} // cases.
YourCases c = YourCases.UPPER1; // you will probably get this value from somewhere
switch(c){
case YourCases.UPPER1: ....
break;
case YourCases.UPPER2: ....
}
邵璞
2023-03-14

如果你想这样做:只要确保输入数据都是小写的,并使用小写...

switch ("UPPER".toLowerCase()) {
case  "upper" :

....

此外,古老的本地化问题再次出现,并困扰着这件事。。。例如,在土耳其语地区,i的大写对应词不是i,而是İ。。。作为回报,I不会被转换为I,而是一个“无点I”:ı。不要低估这一点,这可能是一个致命的错误。。。

 类似资料:
  • 问题内容: 我想知道是否有一种方法可以在java switch case语句中执行不区分大小写的匹配。默认实现 区分大小写 。请参见下面的示例。 因此,以上语句作为输出返回。而且我正在尝试使其像 不区分大小写的 匹配一样工作。我尝试将字符串文字都转换为小写,然后进行比较。但无法做到。 问题答案: 如果要这样做:只需确保输入数据全部为小写,并使用小写… 本地化问题 同样,古老的本地化问题再次引起人们

  • 如何在Java中以区分大小写的方式进行匹配?我的意思是,我想编写一个类似的regex。但是我想匹配以及等等。在Java中最简单的方法是什么?

  • 我只是在Java中测试一些并发编程。基本上,我有一个类(Light),它是一种有限状态机,并根据命令改变其状态。这就是我正在尝试的:灯处于开启状态,我向这个类的线程发送一个命令来改变关闭状态。但是我在执行过程中遇到了一个问题。 首先,让我向大家介绍一下: 输出显示我处于ON状态,而我应该处于OFF状态。 在第二次运行时,在放入一条指令(< code>System.out.println或其他指令后

  • 我试图在Elasticseach 7中实现部分的、区分大小写的匹配。 我正在使用设置创建索引: 以及映射: 以下查询将正确返回文档: 但当我将搜索词小写时,它不会返回文档: 如何配置Elasticsearch,使其与使用小写搜索词的名称字段值匹配?

  • 本文向大家介绍在MySQL SELECT语句中实现区分大小写,包括了在MySQL SELECT语句中实现区分大小写的使用技巧和注意事项,需要的朋友参考一下 SELECT默认情况下不区分大小写。对于区分大小写的实现,使用BINARY运算符。以下是语法: 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是区分大小写的选择查询-

  • 问题内容: 我正在尝试提出一个要求区分大小写的结果的请求。 例如在我的数据库中 该请求是 但我有3行作为结果,我只想要abcdef 我试图找到一个解决方案 但是我有这个错误: 未知归类:’Latin1_General_CS_AS’{“成功”:false,“错误”:“#1273-未知归类:’Latin1_General_CS_AS’”} 谢谢 问题答案: 感谢您的帮助,我找到了不是latin1 ut