switch的问题,判断string 我有一个string型的变量,想用switch去判断,是不是"title" "alblum" "artist",请问如何操作. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 switch不支持字符串。用if else吧。 Java的Switch不支持String。C#和Ruby的支持。 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; } switch不能判断String 如果非要用就把String的都转化成int型吧 java的switch不支持Sring类型的判断 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; } }} java 中 支持swicht的类型有 integer char 修改 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 = falsetitle & title = truetitle & ohuan = false String value ="b"; switch (value .hashCode()) { case "title".hashCode(): //TODO break; case "alblum".hashCode(): //TODO break; case "artist".hashCode(): //TODO break; default: //TODO break; } 鄂....用compareTo函数,一开始不知道这个函数.其实那个也不错. .net就可以判断字符串,java不行啊... 不过回头想想如果用compareTo就失去了switch的意义就没了.10楼的想法不错,能把详细的代码放上来看看? 没那么做过,刚刚试验了下好像不行。case后面必须是常量,还真讨厌。我设定为public static final int 都不行 呵呵,十楼的 "字符串".hashCode() 很好. 它的返回一个int. 每一个不同的字符串,都是有不同的哈希码. 返回此字符串的哈希码。String 对象的哈希码根据以下公式计算: s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1] 使用 int 算法,这里 s[i] 是字符串的第 i 个字符,n 是字符串的长度,^ 表示求幂。(空字符串的哈希值为 0。) SWITCH(CHAR OR INTEGER). 静态初始化问题 SWT 如何实现拖拽缩放图片 初学java,我不知道这个关于矩形程序错在哪呢? 错误老说找不到符号?什么意思? 请问String转byte[]是怎么转法? 急~~一个错误,在线等~~ 急!!!求救!encoding不支持怎么办? 关于文件读写的问题~~急~~ 急!求一个“文件压缩”的源程序或相关Java资源?谢谢! Java SE 的ImageIO.read()问题 JFrame间调用延迟卡顿 和线程有关的问题 关于Arrays.equals() 和equals()的重载问题
写个函数给你吧.匹配"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;
}
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;
}
}
}
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
String value ="b";
switch (value .hashCode()) {
case "title".hashCode():
//TODO
break;
case "alblum".hashCode():
//TODO
break;
case "artist".hashCode():
//TODO
break;
default:
//TODO
break;
}
case后面必须是常量,还真讨厌。
我设定为public static final int 都不行
返回此字符串的哈希码。String 对象的哈希码根据以下公式计算:
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
使用 int 算法,这里 s[i] 是字符串的第 i 个字符,n 是字符串的长度,^ 表示求幂。(空字符串的哈希值为 0。)