switch语句匹配字符串

JDK 7.0中switch语句匹配字符串就不必说了哈,下面只讨论在JDK6中的情况。
根据相关文档……switch语句是只能匹配整型数据的,匹配字符串的话编译器就会报错:类型不匹配。 Java:使switch语句匹配字符串 - Kia_Or.EOF - CrioRad Style Java:使switch语句匹配字符串 - Kia_Or.EOF - CrioRad Style
怎么解决这个问题呢……拿本大厚书来说,你想找某个章节的内容肿么办?得先去看目录(大厚书么……),再找着那一章的名字,看那一章在哪一页上然后翻到那一页上去就找到了。
上面那个就是思路:
1.先搞一个字符串变量,里面存一些字符串作为目录。
这些字符串占的字符位数和间距都是固定的,这样哪个字符串在哪个位置就是明确的了,这每个字符串的位置就可以看作“页数”。
2.另一个字符串变量放的就是要匹配的其中一个字符串。
这个好比你要找的章节名称。
3.switch语句中每个case后的数字就是每个字符串的位置,这就是对应的“页数”。
4.怎么让程序看目录呢?用字符串的indexOf()函数即可返回页数,这样switch就找到了那一页。
通过这几步让就可以让switch成功匹配字符串。举个例子吧(~):

//设置一个字符串变量 cmdList作为目录,存放的每个字符串都占9个位
//这样一来,每个字符串的位置都是9的倍数(从0开始计)
//(不够的用空格补,连间隔都算进去,这样是为了方便确定数字符串在哪个位置)

String cmdList = "welcome fasthlp noplayer admhlp usrhlp " +"reqpass passerr logs quis logf " +"noteno cmderr "; String aimStr="reqpass"; switch(cmdList.indexOf(aimStr)/9){ case 0: ...... //对应welcome break; case 1: ...... //对应fasthlp break; case 2: ...... //对应noplayer break; case 3: ...... //对应admhlp break; ...... }

从以上程序可以看到,aimStr在目录中第5个位置,所以对应case 5: 这个标签。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值