解决java switch……case不能匹配字符串的问题
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不能匹配字符串的问题的更多相关文章
- switch……case不能匹配字符串的方法 .xml
pre{ line-height:1; color:#d1653c; background-color:#000000; font-size:16px;}.sysFunc{color:#566d68; ...
- Java switch case和数组
Java switch case 语句 switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. 语法 switch case 语句格式: switch(express ...
- Java-Runoob:Java switch case
ylbtech-Java-Runoob:Java switch case 1.返回顶部 1. Java switch case 语句 switch case 语句判断一个变量与一系列值中某个值是否相等 ...
- BUGFIX 09 - 记一次Java中String的split正则表达式匹配 - 引发`OutOfMemoryError: Java heap space`的oom异常 排查及解决 -Java根据指定分隔符分割字符串,忽略在引号里面的分隔符
问题简述 说白了,Java根据指定分隔符分割字符串,忽略在引号(单引号和双引号)里面的分隔符; oom压测的时候,正则匹配"(?=(?:[^\"]*\"[^\" ...
- Java switch case 语句
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. 语法 switch(expression){ case value : //语句 break; //可选 ca ...
- Java switch case语句
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. switch case 语句语法格式如下: switch(expression){ case value : ...
- java中使用正则表达式匹配字符串
在Java中使用正则表达式去匹配相应的字符串: String importFileRole = "(import)\\s*[a-zA-Z0-9_<>.]+\\;";// ...
- java学习之—栈匹配字符串符号
/** * 栈 * Create by Administrator * 2018/6/11 0011 * 上午 10:20 **/ public class StackR { private int ...
- java switch case 枚举类型的反编译结果
package com.example.demo; import java.io.PrintStream; // Referenced classes of package com.example ...
随机推荐
- PhantomJS实现最简单的模拟登录方案
以前写爬虫,遇到需要登录的页面,一般都是通过chrome的检查元素,查看登录需要的参数和加密方法,如果网站的加密非常复杂,例如登录qq的,就会很蛋疼 在后面,有了Pyv8,就可以把加密的js文件扔给它 ...
- 1054. The Dominant Color (20)
时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue Behind the scenes in the compute ...
- UIApplication深入研究
我们偶尔会调用这个类的api来实现一些功能,但是这个类是iOS编程中很重要的一个概念,所以总结以下这个类的信息,不对的地方请留言. UIApplication的核心作用是提供了iOS程序运行期间的控制 ...
- NSFileManager 沙盒文件管理
文件夹创建,复制,移动,删除,检查是否存在,代码如下: 1.获取沙盒 document 路径,作为文件夹路径的基路径. NSString *document = NSSearchPathForDire ...
- springmvc 数据对象回绑
springmvc中,由页面 post到 controller,对象可以在form里面设置modelAttribute达到回绑的目的. 但是如果对象里面有复杂的非String,int的对象,则要在co ...
- 5.2:缓存中获取单例bean
5.2 缓存中获取单例bean 介绍过FactoryBean的用法后,我们就可以了解bean加载的过程了.前面已经提到过,单例在Spring的同一个容器内只会被创建一次,后续再获取bean直接从单例 ...
- nginx上用fastcgi配置python环境
费了2天的功夫,翻阅了无数的中文.英文资料,终于搞定.写下此文留待以后翻阅用 本文环境,centOS 5.4 ,Nignx-0.8.49, Python 2.6.5 ========== ...
- struts2 标签的使用之二 s:iterator
struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo:s:iterator 标签有3个属性: value:被迭代的集合 id :指定集 ...
- POJ 3393 Lucky and Good Months by Gregorian Calendar
http://poj.org/problem?id=3393 题意 : 对于这篇长长的英语阅读,表示无语无语再无语,花了好长时间,终于读完了.题目中规定每周的周六日为假日,其他为工作日,若是一个月的第 ...
- ???????????? no permissions
1.一手鞋地址 google http://developer.android.com/tools/device.html 我处理的方法如下: 我的问题: android的版卡 在Ubuntu12.0 ...