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. Qt+MinGW+OpenCV开发环境在win7系统下的搭建(最新20140423)

    1 搭建环境 (1)联想Y470笔记本电脑,win7操作系统 (2)Qt 5.2.1 Open Source :(Qt Online installer for Window(9MB),即下载页面最上 ...

  2. div中加入iframe,可以实现Ajax的功能

    div中加入iframe,可以实现Ajax的功能,如果查询的时候,比如说城市的选择,用Ajax去实现, 在.net 可以考虑用UpdatePanel,但是点击了查询刷新表格(表格需要重新刷新加载,非纯 ...

  3. WPF常用数据绑定控件集合

    1.怎么用ListView控件把XML中的数据在界面上显示出来? <?xml version="1.0" encoding="utf-8" ?> & ...

  4. Sambar,实现Linux和Windows共享

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

  5. IOS成长之路-调用照相机和相册功能(转)

    转载自:http://blog.csdn.net/like7xiaoben/article/details/8465237 //先设定sourceType为相机,然后判断相机是否可用(ipod)没相机 ...

  6. iOS 的 Gif 渲染引擎 FLAnimatedImage-b

    公司的项目有个首页加载一张2M左右的git图,刚做的时候是使用的SDWebImage里面的方法: + (UIImage *)sd_animatedGIFNamed:(NSString *)name; ...

  7. VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application”

    升级vs2010到vs2012,突然发现build出来的应用程序无法运行,提示“不是有效的 win32 应用程序” or “not a valid win32 application”. 参考CSDN ...

  8. Recommender Systems 基于知识的推荐

    前两章的协同过滤和就内容的推荐都建立在“大量数据”的基础上,运用概率方法来进行计算和预测.不过,在现实生活中,有些物品,如:汽车.房屋.计算机,用户不会频繁的消费.如何在这种情况下对用户进行推荐? 这 ...

  9. uva 10739

    dp 只有三个操作  当str[i] != str[j] 时 dp(i, j) = min(dp(i+1, j), dp(i+1, j-1), dp(i, j-1)) #include <ios ...

  10. linux pts/0的含义

    pts是所谓的伪终端或虚拟终端,具体表现就是你打开一个终端,这个终端就叫pts/0,如果你再打开一个终端,这个新的终端就叫pts /1.比如用who命令查询当前登录的用户,可以看到每个用户的TTY设备 ...