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. iomanip,setw(),setw: undeclared identifier

    今天使用setw(),提示setw: undeclared identifier,上网查了下,原来是没有包含头文件iomanip,现摘录如下: iomanip #include <iomanip ...

  2. Oracle RAC集群安装之:Grid软件安装过程蓝屏

    前几天在安装一套RAC服务器的过程中,遇到了蓝屏事件,折腾了蛮久(在排查是否存在硬件问题上花费了相当多一部分时间),整个过程大概说明如下: 1.两台华为的PC SERVER,操作系统为WIN SERV ...

  3. 一步步学习ASP.NET MVC3 章节总结

    请注明转载地址:http://www.cnblogs.com/arhat 对于<一步步学习ASP.NET MVC3>系列工15章,那么为了方便大家能够快速的预览,老魏在这里为这个系列提供一 ...

  4. 【BZOJ 1013】 [JSOI2008]球形空间产生器sphere

    Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧毁 ...

  5. easyBCD安装双系统,简单便捷,亲测好用

    一 准备工作(在WIN7下操作完成) 1   从官网http://www.ubuntu.com/上下载镜像文件,大小接近700M.下载EasyBCD最新版安装之.特别声明:EasyBCD是一款很优秀的 ...

  6. 原生js获取window高和宽

    视口的宽和高 var pw = window.innerWidth, ph = window.innerHeight; if(typeof pw != "number"){ pw ...

  7. BZOJ 1593: [Usaco2008 Feb]Hotel 旅馆

    Description 奶牛们最近的旅游计划,是到苏必利尔湖畔,享受那里的湖光山色,以及明媚的阳光.作为整个旅游的策划者和负责人,贝茜选择在湖边的一家著名的旅馆住宿.这个巨大的旅馆一共有N (1 &l ...

  8. 团体程序设计天梯赛-练习集L1-001. Hello World

    L1-001. Hello World 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 这道超级简单的题目没有任何输入. 你只需要在一行中输 ...

  9. CodeForces 299B Ksusha the Squirrel

    http://codeforces.com/problemset/problem/299/B 题意 :这个题挺简单的,就是说这个姑娘不喜欢走有石头的扇形,所以给你一个k的值,代表她一次可以跳多少扇形. ...

  10. poj 3440 Coin Toss 概率问题

    这题主要是推导数学公式!!! 将概率问题转化为圆心所在的面积! 代码如下: #include<iostream> #include<stdio.h> #include<a ...