java1.7已经支持了匹配字符串

方案1.

 enum Animal {  

     dog,cat,bear;

      public static Animal getAnimal(String animal){  

        return valueOf(animal );  

     }   

 }

 public class Client {  

    public void caseAnimal(String animal){  

        switch(Animal.getAnimal(animal)){  

        case cat:  

            System.out.println("this is a cat");  

            break;  

        case dog:  

            System.out.println("this is a dog");  

            break;  

        case bear:  

            System.out.println("this is a bear");  

            break;  

        }  

    }

   public static void main(String[] args) {

       Client client = new Client();  

        client.caseAnimal("cat"); 

 } 

 } 

方案2

 enum Seasons{

          SPRING,SUMMER,AUTUMN,WINTER

 }

 public class TestMultiInterface{

          public static void main(String[] args){

                    Seasons str=Seasons.SPRING;

                    switch(str.ordinal()){

                    case 0:

                    System.out.println(str.toString());

                    break;

                    case 1:

                    System.out.println(str.toString());

                    break;

                    default:

                    System.out.println("没找到");

                    }

          }

 }

方案3

 public void switchCase() { 

   Map<String,Integer> map=new HashMap<String, Integer>(); 

   map.put("中国", 1); 

   map.put("美国", 2); 

   map.put("英国", 3); 

   map.put("法国", 4); 

   String str="中国"; 

   switch(map.get(str)) 

   {       

    case 1: 

         System.out.println("中国"); 

         break; 

     case 2: 

         System.out.println("美国"); 

        break; 

     case 3:

         System.out.println("英国");

        break;

     case 4: 

        System.out.println("法国"); 

        break;   

    default: 

     System.out.println("default"); 

   } 

  } 

方案4

 String str1 = "aa";

         String[] str2 = {"bb", "aa", "cc", "aaa"};

         for (int i = 0; i < str2.length; ++i){

             switch (str1.compareTo(str2[i])) {

               case 0: System.out.println("OK");

                       break;

               default: System.out.println("Error");

                         break;

             }

         }

方案5

 public class Client {

          public Client(String animal) {

                    //使用String的hasCode取得字符串的哈希码,此方法要保证哈希码不重复

                    switch (animal.hashCode()) {

                    case 98262:

                             System.out.println("this is a cat");

                             break;

                    case 99644:

                             System.out.println("this is a dog");

                             break;

                    case 3019700:

                             System.out.println("this is a bear");

                             break;

                    }

          }

          public static void main(String[] args) {

                    Client client = new Client("bear");

          }

方案6  如果是在使用简单工厂设计模式,可以考虑利用java反射技术代替switch

 public static UserDao createUser(){
Animal animal=null;
try {
iu=(Animal) Class.forName(Animal接口下子类的完整类名).newInstance();
}catch (Exception e) {
e.printStackTrace();
}
return animal; }

以上方案,有的是从网上收集来的,有的是自己原创的,因为时间过长,已经不记得从哪个地方摘抄下来的,没有注明转载的地方,十分抱歉!

解决java switch……case不能匹配字符串的问题的更多相关文章

  1. switch……case不能匹配字符串的方法 .xml

    pre{ line-height:1; color:#d1653c; background-color:#000000; font-size:16px;}.sysFunc{color:#566d68; ...

  2. Java switch case和数组

    Java switch case 语句 switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. 语法 switch case 语句格式: switch(express ...

  3. Java-Runoob:Java switch case

    ylbtech-Java-Runoob:Java switch case 1.返回顶部 1. Java switch case 语句 switch case 语句判断一个变量与一系列值中某个值是否相等 ...

  4. BUGFIX 09 - 记一次Java中String的split正则表达式匹配 - 引发`OutOfMemoryError: Java heap space`的oom异常 排查及解决 -Java根据指定分隔符分割字符串,忽略在引号里面的分隔符

    问题简述 说白了,Java根据指定分隔符分割字符串,忽略在引号(单引号和双引号)里面的分隔符; oom压测的时候,正则匹配"(?=(?:[^\"]*\"[^\" ...

  5. Java switch case 语句

    switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. 语法 switch(expression){ case value : //语句 break; //可选 ca ...

  6. Java switch case语句

    switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. switch case 语句语法格式如下: switch(expression){ case value : ...

  7. java中使用正则表达式匹配字符串

    在Java中使用正则表达式去匹配相应的字符串: String importFileRole = "(import)\\s*[a-zA-Z0-9_<>.]+\\;";// ...

  8. java学习之—栈匹配字符串符号

    /** * 栈 * Create by Administrator * 2018/6/11 0011 * 上午 10:20 **/ public class StackR { private int ...

  9. java switch case 枚举类型的反编译结果

     package com.example.demo; import java.io.PrintStream;  // Referenced classes of package com.example ...

随机推荐

  1. flash memory

    数据删除不是以单个的字节为单位而是以固定的区块为单位(注意:NOR Flash 为字节存储.),区块大小一般为256KB到20MB. 由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的B ...

  2. wpf 实现全屏与取消全屏

    /// <summary> /// 全屏 /// </summary> public void ToFullscreen() { //存储窗体信息 m_WindowState ...

  3. asp .NET弹出窗口 汇总(精华,麒麟创想)

    asp .NET弹出窗口 汇总(精华,麒麟创想) 注://关闭,父窗口弹出对话框,子窗口直接关闭 this.Response.Write("<script language=javas ...

  4. 【BZOJ 1491】 [NOI2007]社交网络

    Description Input Output 输出文件包括n 行,每行一个实数,精确到小数点后3 位.第i 行的实数表 示结点i 在社交网络中的重要程度. Sample Input 4 4 1 2 ...

  5. python学习笔记18(UliPad 初体验)

    在windows下安装配置Ulipad 由于UliPad 是由wxPython 开发的,所以,需要先安装wxPython . wxPython下载地址: http://www.wxpython.org ...

  6. 获取不变的UDID-b

    iOS唯一标识的历史历程 iOS 6.0 在iOS6.0以前,是使用uniqueIdentifier来获取手机的唯一标识,后来苹果感觉这样会泄露用户隐藏,就封掉了这个方法: iOS 6.0系统新增了两 ...

  7. 强连通分量Tarjan模板

    #include<iostream> #include<stdio.h> #include<string.h> #include<stack> #inc ...

  8. 利用开源项目使discus论坛与java应用同步登录和注册

    最近做了一个资源库系统的项目,老师说可以搭建开源论坛替代自己开发社交模块(评论啊,反馈啊)来减轻负担,甚至提到了要给每个资源开一帖的功能..使我十分怀疑到底是减轻负担还是增加负担...不过怀疑归怀疑, ...

  9. 自己开发开源jquery插件--给jquery.treeview加上checkbox

    很多时候需要把树状的数据显示除来,比如分类,中国省份.城市信息,等,因此这方面的javascript插件也有很多.比如性能优异的jquery.treeview和国人开发的功能强大的zTree. 我最近 ...

  10. FileFilter

    FileFilter 下面的例子中我们创建了一个FileFilter类,此类根据文件名的扩展名是否为.png来筛选文件.创建FileFilter实例之后需要将此实例作为参数传给File的listFil ...