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. 升级python版本导致Django无法使用的解决办法

    运行环境是CentOS6.2 x86_64,在把python从2.6.6升级到2.7.5后,由于环境变量的改变,在python代码中再import django的话将会出现以下报错:   “No mo ...

  2. (转)Qt Model/View 学习笔记 (三)——Model类

    Model类 基本概念 在model/view构架中,model为view和delegates使用数据提供了标准接口.在Qt中,标准接口QAbstractItemModel类中被定义.不管数据在底层以 ...

  3. Sambar,实现Linux和Windows共享

    我下载的是tar的jar包,不是rpm,rpm就不多说了.目的是让Windows能够共享Linux系统的文件夹 1.进入到source文件夹: 2../configure->make->m ...

  4. Eclipse中设置作者日期等信息

    在使用Eclipse 编写Java代码时,自动生成的注释信息都是按照预先设置好的格式生成的,例如其中author 的属性值. 我们可以在Eclipse 中进行设置自己希望显示的信息. 现在看看如何修改 ...

  5. Lua基础之coroutine(协程)

    概括:1.创建协程2.coroutine的函数3.coroutine的基本流程4.yield对coroutine流程的干预5.resume, function()以及yield之间的参数传递和返回值传 ...

  6. XSS动态检测

    0x00 起 前一段时间,因为工作原因接触到XSS漏洞检测.前人留下的锅,是采用pyqt webkit来解析网页内容.作为Python webkit框架,相比于PhantomJS,pyqt在捕获错误, ...

  7. 2328: [HNOI2011]赛车游戏 - BZOJ

    先把一定要减的费用先减掉,就是b*s*len(上坡路),下坡路就设一个初速度,使耗油为0,如果没油了,就无法到达 然后考虑加速 对于长度为len的路,增加v的速度需要len*a*v的油,与len成正比 ...

  8. vncserver 添加用户

    1.在vncserver设置登录用户的信息   #vi /etc/sysconfig/vncservers   VNCSERVERS="1:root 2:wt" 此处添加用户   ...

  9. eclipse(Version: Neon Release (4.6.0))安装hibernate tools

    这里需要说明的是,hibernate tools是jboss推出的. eclipse——>Eclipse Marketplace... 输入jboss-tools进行搜索 选择jboss too ...

  10. 在TNSNAMES.ORA文件中配置本机装的oracle

    首先,感谢这两位网友:http://zhidao.baidu.com/link?url=eGYeoEa-EhQdVitSGqjE36uNfVmEsryXH1WUjPue6YvArDSx-Y1N9_rd ...