我有一个string型的变量,想用switch去判断,是不是"title" "alblum" "artist",请问如何操作.

解决方案 »

  1.   

    switch不支持字符串。用if else吧。
      

  2.   

    Java的Switch不支持String。C#和Ruby的支持。
      

  3.   

    switch好象不能对String类型的变量进行判断.
    写个函数给你吧.匹配"title"的,其他类似
     public int conclusion(String s)
        {
            char ch[]=s.toCharArray();
            int sign=0;//匹配为0,不匹配为1
            for(int i=0;i<ch.length;i++)
            {
              switch(i)
              {
                  case 0:if(ch[i]=='t')
                           sign=0;
                         else
                             sign=1;
                              break;
                  case 1:if(ch[i]=='i'&&sign==0)
                            sign=0;
                          else
                              sign=1;break;
                  case 2:  if(ch[i]=='t'&&sign==0)
                            sign=0;
                          else
                              sign=1;break;
                  case 3: if(ch[i]=='l'&&sign==0)
                            sign=0;
                          else
                              sign=1;break;
                  case 4:if(ch[i]=='e'&&sign==0)
                            sign=0;
                          else
                              sign=1;break;
                  default: sign=1;
              
              }
           
            }
           return sign;
        } 
      

  4.   

    switch不能判断String 如果非要用就把String的都转化成int型吧
      

  5.   

    java的switch不支持Sring类型的判断
      

  6.   

    class test {
    public static void main(String args[]) {
    String youString = "alblum";
    //....."title" "alblum" "artist"
    int tempInt = youString.equals("title") ? 1 : (youString.equals("alblum") ? 2 :(youString.equals("artist") ? 3 : 0));
    switch(tempInt) {
    case 0  : System.out.println("is not right String");
     break;
    case 1 : System.out.println("is String \"title\"");
             break;
    case 2 : System.out.println("is String \"alblum\"");
               break;
    case 3 : System.out.println("is String \"artist\"");
     break;
    }
    }
    }
      

  7.   

    java 中 支持swicht的类型有 integer char
      

  8.   

    修改 4 楼的:public class SwitchString {
    public static void main(String[] arg0){
    SwitchString ss = new SwitchString();
    String s1 = "ohuan";
    String s2 = "title";
    System.out.println("ohuan & title = "+ss.compare(s1,s2));
    System.out.println("title & title = "+ss.compare(s2,s2));
    System.out.println("title & ohuan = "+ss.compare(s2,s1));
    }
    public boolean compare(String s1,String s2){
    boolean flag = false;
    switch (s1.compareTo(s2)) {
    case 0: {
    flag = true;
    break;
    }
    default: {
    flag = false;
    }
    }
    return flag;
    }
    }
    运行结果:
    ohuan & title = false
    title & title = true
    title & ohuan = false
      

  9.   


        String value ="b";
        switch (value .hashCode()) {
            case "title".hashCode():
                //TODO
                break;
            case "alblum".hashCode():
                //TODO
                break;
            case "artist".hashCode():
                //TODO
                break;
            default:
                //TODO
                break;
        }
      

  10.   

    鄂....用compareTo函数,一开始不知道这个函数.其实那个也不错.
      

  11.   

    .net就可以判断字符串,java不行啊...
      

  12.   

    不过回头想想如果用compareTo就失去了switch的意义就没了.10楼的想法不错,能把详细的代码放上来看看?
      

  13.   

    没那么做过,刚刚试验了下好像不行。
    case后面必须是常量,还真讨厌。
    我设定为public static final int 都不行
      

  14.   

    呵呵,十楼的 "字符串".hashCode()  很好. 它的返回一个int.   每一个不同的字符串,都是有不同的哈希码. 
    返回此字符串的哈希码。String 对象的哈希码根据以下公式计算: 
     s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
     使用 int 算法,这里 s[i] 是字符串的第 i 个字符,n 是字符串的长度,^ 表示求幂。(空字符串的哈希值为 0。)
      

  15.   

    SWITCH(CHAR OR INTEGER).