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. The connection to adb is down

    有一周时间没有打开ADT了,最近想为我的APP增加下些新的功能,但是在编译的时候出现了一个奇怪问题 [2013-10-18 14:43:50 - zzbus] Android Launch![2013 ...

  2. 配置node与express初试

    http://www.nodejs.org/下载对应系统的node版本并安装 用npm包管理器安装需要的包 sudo npm install -g express sudo npm install - ...

  3. GNU_makefile_template

    #g++ compiler: options # -std=c++0x enables ISO C++ 11 standard # -I.. pulls in the Version_test.h f ...

  4. 第一次写python

    这是一个在BJDP上学习Coding Kata的时候用到的一个练习,原来打算用Java写的,但是一想正好是学习的好机会. 就用Python了.第一次,写的有些复杂. 这个题目是关于购买图书的打折信息的 ...

  5. tcpprep 对IPV6的支持

    在采用tcpreplay对包实施回放前,需要对包执行预处理,tcpprep就是完成这个任务的.tcpprep要做的处理就是生成一个cache文件,根据tcpprep wiki的介绍http://tcp ...

  6. Java发送邮件(带附件)

    实现java发送邮件的过程大体有以下几步: 准备一个properties文件,该文件中存放SMTP服务器地址等参数. 利用properties创建一个Session对象 利用Session创建Mess ...

  7. mysql.zip免安装版配置

    MYSQL ZIP免安装版配置 1. 下载MySQL 选择自己想要的.本次安装.我使用的是mysql-5.6.17-winx64  地址:http://dev.mysql.com/downloads/ ...

  8. hdu 3449

    有依赖的背包,转化成01背包来做: #include<iostream> #include<cstdio> #include<cstring> #include&l ...

  9. 关于delete和delete[]

    [精彩] 求问delete和delete[] 的区别??http://www.chinaunix.net/jh/23/311058.html C++告诉我们在回收用 new 分配的单个对象的内存空间的 ...

  10. HDMI介绍与流程

    HDMI接口 http://baike.c114.net/view.asp?id=17671-21565442 DDC(Display Data Channel)通道用于HDMI发送和接收端之间交换一 ...