Java switch中使用string作为分支条件
在java中明确规定switch里面只允许使用int,char,和enum类型,但是我们实际编程过程中往往需要通过String来进行比较。那么应该怎么做呢?其实很简单,我们只需要将enum类型做一个小小的封装就可以达到我们的目的。
public enum Animal { dog, cat, bear; public static Animal getAnimal(String animal) { return valueOf(animal.toLowerCase()); } }
调用:
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; } } /** * @param args */ public static void main(String[] args) { Client client = new Client(); client.caseAnimal("cat"); } }
在Java7之前,switch只能支持 byte、short、char、int或者其对应的封装类以及Enum类型。
在Java7中,呼吁很久的String支持也终于被加上了。
下面是一段switch中使用String的示例代码。
public class Test { public void test(String str) { switch(str) { case "abc": System.out.println("abc"); break; case "def": System.out.println("def"); break; default: System.out.println("default"); } } }
需要注意的是,传给switch的String变量不能为null,同时switch的case子句中使用的字符串也不能为null。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: Java switch中使用string作为分支条件
- 下一篇: php 去掉字符串的最后一个字符