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

方案1.

  1. enum Animal {
  2.  
  3. dog,cat,bear;
  4.  
  5. public static Animal getAnimal(String animal){
  6.  
  7. return valueOf(animal );
  8.  
  9. }
  10.  
  11. }
  12.  
  13. public class Client {
  14.  
  15. public void caseAnimal(String animal){
  16.  
  17. switch(Animal.getAnimal(animal)){
  18.  
  19. case cat:
  20.  
  21. System.out.println("this is a cat");
  22.  
  23. break;
  24.  
  25. case dog:
  26.  
  27. System.out.println("this is a dog");
  28.  
  29. break;
  30.  
  31. case bear:
  32.  
  33. System.out.println("this is a bear");
  34.  
  35. break;
  36.  
  37. }
  38.  
  39. }
  40.  
  41. public static void main(String[] args) {
  42.  
  43. Client client = new Client();
  44.  
  45. client.caseAnimal("cat");
  46.  
  47. }
  48.  
  49. }

方案2

  1. enum Seasons{
  2.  
  3. SPRING,SUMMER,AUTUMN,WINTER
  4.  
  5. }
  6.  
  7. public class TestMultiInterface{
  8.  
  9. public static void main(String[] args){
  10.  
  11. Seasons str=Seasons.SPRING;
  12.  
  13. switch(str.ordinal()){
  14.  
  15. case 0:
  16.  
  17. System.out.println(str.toString());
  18.  
  19. break;
  20.  
  21. case 1:
  22.  
  23. System.out.println(str.toString());
  24.  
  25. break;
  26.  
  27. default:
  28.  
  29. System.out.println("没找到");
  30.  
  31. }
  32.  
  33. }
  34.  
  35. }

方案3

  1. public void switchCase() {
  2.  
  3. Map<String,Integer> map=new HashMap<String, Integer>();
  4.  
  5. map.put("中国", 1);
  6.  
  7. map.put("美国", 2);
  8.  
  9. map.put("英国", 3);
  10.  
  11. map.put("法国", 4);
  12.  
  13. String str="中国";
  14.  
  15. switch(map.get(str))
  16.  
  17. {
  18.  
  19. case 1:
  20.  
  21. System.out.println("中国");
  22.  
  23. break;
  24.  
  25. case 2:
  26.  
  27. System.out.println("美国");
  28.  
  29. break;
  30.  
  31. case 3:
  32.  
  33. System.out.println("英国");
  34.  
  35. break;
  36.  
  37. case 4:
  38.  
  39. System.out.println("法国");
  40.  
  41. break;
  42.  
  43. default:
  44.  
  45. System.out.println("default");
  46.  
  47. }
  48.  
  49. }

方案4

  1. String str1 = "aa";
  2.  
  3. String[] str2 = {"bb", "aa", "cc", "aaa"};
  4.  
  5. for (int i = 0; i < str2.length; ++i){
  6.  
  7. switch (str1.compareTo(str2[i])) {
  8.  
  9. case 0: System.out.println("OK");
  10.  
  11. break;
  12.  
  13. default: System.out.println("Error");
  14.  
  15. break;
  16.  
  17. }
  18.  
  19. }

方案5

  1. public class Client {
  2.  
  3. public Client(String animal) {
  4.  
  5. //使用String的hasCode取得字符串的哈希码,此方法要保证哈希码不重复
  6.  
  7. switch (animal.hashCode()) {
  8.  
  9. case 98262:
  10.  
  11. System.out.println("this is a cat");
  12.  
  13. break;
  14.  
  15. case 99644:
  16.  
  17. System.out.println("this is a dog");
  18.  
  19. break;
  20.  
  21. case 3019700:
  22.  
  23. System.out.println("this is a bear");
  24.  
  25. break;
  26.  
  27. }
  28.  
  29. }
  30.  
  31. public static void main(String[] args) {
  32.  
  33. Client client = new Client("bear");
  34.  
  35. }

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

  1. public static UserDao createUser(){
  2. Animal animal=null;
  3. try {
  4. iu=(Animal) Class.forName(Animal接口下子类的完整类名).newInstance();
  5. }catch (Exception e) {
  6. e.printStackTrace();
  7. }
  8. return animal;
  9.  
  10. }

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

解决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. PhantomJS实现最简单的模拟登录方案

    以前写爬虫,遇到需要登录的页面,一般都是通过chrome的检查元素,查看登录需要的参数和加密方法,如果网站的加密非常复杂,例如登录qq的,就会很蛋疼 在后面,有了Pyv8,就可以把加密的js文件扔给它 ...

  2. 1054. The Dominant Color (20)

    时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Behind the scenes in the compute ...

  3. UIApplication深入研究

    我们偶尔会调用这个类的api来实现一些功能,但是这个类是iOS编程中很重要的一个概念,所以总结以下这个类的信息,不对的地方请留言. UIApplication的核心作用是提供了iOS程序运行期间的控制 ...

  4. NSFileManager 沙盒文件管理

    文件夹创建,复制,移动,删除,检查是否存在,代码如下: 1.获取沙盒 document 路径,作为文件夹路径的基路径. NSString *document = NSSearchPathForDire ...

  5. springmvc 数据对象回绑

    springmvc中,由页面 post到 controller,对象可以在form里面设置modelAttribute达到回绑的目的. 但是如果对象里面有复杂的非String,int的对象,则要在co ...

  6. 5.2:缓存中获取单例bean

    5.2  缓存中获取单例bean 介绍过FactoryBean的用法后,我们就可以了解bean加载的过程了.前面已经提到过,单例在Spring的同一个容器内只会被创建一次,后续再获取bean直接从单例 ...

  7. nginx上用fastcgi配置python环境

    费了2天的功夫,翻阅了无数的中文.英文资料,终于搞定.写下此文留待以后翻阅用      本文环境,centOS 5.4 ,Nignx-0.8.49, Python 2.6.5   ========== ...

  8. struts2 标签的使用之二 s:iterator

    struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo:s:iterator 标签有3个属性:    value:被迭代的集合    id   :指定集 ...

  9. POJ 3393 Lucky and Good Months by Gregorian Calendar

    http://poj.org/problem?id=3393 题意 : 对于这篇长长的英语阅读,表示无语无语再无语,花了好长时间,终于读完了.题目中规定每周的周六日为假日,其他为工作日,若是一个月的第 ...

  10. ???????????? no permissions

    1.一手鞋地址 google http://developer.android.com/tools/device.html 我处理的方法如下: 我的问题: android的版卡 在Ubuntu12.0 ...