郁闷!各位老大:java中switch() 中不能用字符串来进行判断吗?

xiahaobo01 2004-06-16 11:20:42
String str1="aa"
switch (str1)
{
case "aa": System.out.println("OK");
break;
case "bb": System.out.println("Error");
break;
}

结果报错说 switch和case 后数据类型不对
...全文
9447 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
tdmlxq 2004-09-13
  • 打赏
  • 举报
回复
不能用字符,只能用整型数据
可以用你要使用的字符与数字对应,就可以实现你要的功能了啊
redlaputa 2004-09-13
  • 打赏
  • 举报
回复
char int short byte
只有这4个
jinsfree 2004-06-17
  • 打赏
  • 举报
回复
不行,不过javascript可以
westwin 2004-06-17
  • 打赏
  • 举报
回复
只能是primitives类型,String不可以
jungangli001 2004-06-17
  • 打赏
  • 举报
回复
上面的类不知道存在不存在,
楼主可以找一下,也可以用字符串数组 string[] str = new string[100];
jungangli001 2004-06-17
  • 打赏
  • 举报
回复
用arraylist吧,把字符串存里去,然后
arraylist.add("123");
arraylist.add("wewewe");
....
string str = "123";
switch(arraylist.indexof(str))
{
case 0:

break;
case 1:
break;
default:

}
tomuno 2004-06-17
  • 打赏
  • 举报
回复
c#里能实现
java出的比较早
大概是没想到 或是没有什么必要吧
HawaiiLeo 2004-06-17
  • 打赏
  • 举报
回复
switch() 可以使用
byte型 (1 byte),
char型 (2 bytes),
short型 (2 bytes),
int型 (4 bytes)
ac669 2004-06-17
  • 打赏
  • 举报
回复
java,c/c++ :switch()中只能用序列数(包括字符)
C# : switch()中 可以用序列数,字符和字符串.
exitzhang 2004-06-17
  • 打赏
  • 举报
回复
总而言之switch不好用
knife_s 2004-06-17
  • 打赏
  • 举报
回复
switch()只能使用序列数
ttom123 2004-06-17
  • 打赏
  • 举报
回复
请大家关注《无法显示窗体的问题!!!!!!!!!!!!!!!!!!!! 》
ttom123 2004-06-17
  • 打赏
  • 举报
回复
初访,能人很多哈,不错不错。
shine333 2004-06-17
  • 打赏
  • 举报
回复
漏了还有byte, 反正凡是整形的(不是int那个整形,而是相对于浮点型)都可以
shine333 2004-06-17
  • 打赏
  • 举报
回复
不行,其实switch/case 实质上是 一个goto与若干label 标签 ,只支持整形,int, long, short, char可以
crazyForCoding 2004-06-17
  • 打赏
  • 举报
回复
只能用整数放在switch()中比较。
你的source的第一行少加了“;”号。
我写了一个解法。但不够灵活,但放在一个循环中就可以了!
String str1 = "aa";
String str2 = "bb";
switch (str1.compareTo(str2)) {
case 0: System.out.println("OK");
break;
default: System.out.println("Error");
break;
}
String型的对象要用compareTo()的方法来比较。

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;
}
}
请多多指教!:)
lixiaobo2008 2004-06-17
  • 打赏
  • 举报
回复
乖,听话,去看书吧!
xiahaobo01 2004-06-17
  • 打赏
  • 举报
回复
谢谢各位在虾!我还是我看看书吧!
聪头 2004-06-16
  • 打赏
  • 举报
回复

if(express){}
else if(express){}
.
.
.
else{}
fuzuyuan 2004-06-16
  • 打赏
  • 举报
回复
当然不可以了,switch(int),case int,也就是说都必须是整型的,字符型的也可以,因为字符转换成ascii码就是整型的了
加载更多回复(3)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧