A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zcy黑马 中级黑马   /  2015-5-26 00:23  /  503 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. package my.test;

  2. /*
  3. * Hello12345World
  4. * 大写 : 2个
  5. * 小写 : 8个
  6. * 数字 : 5个
  7. */
  8. public class Test {
  9.    public static void main(String[] args) {
  10.          String st = "Hello12345World";
  11.          int ucount = 0, lcount = 0, num = 0;
  12.          char[] ch = st.toCharArray();
  13.          for (int i = 0; i < ch.length; i++) {
  14.          (ch[i]<58?num:(ch[i]<98?ucount:lcount))+=1;//之前用的if语句可以,想着用三元运算符就不行了
  15.          }
  16.    System.out.println(ucount+"***"+lcount+"***"+num);
  17.                
  18.    }
  19. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

5 个回复

正序浏览
forTomorrow 发表于 2015-5-26 11:56
条件表达式不能取代一般的if语句,仅当if语句中内嵌的语句为赋值语句(且两个分支都给同一变量赋值)时才能代 ...

我搞定了已经,下面这样就可以了。多谢回答
  1. int m = ch[i]<58?num++:(ch[i]<98?ucount++:lcount++))
复制代码
回复 使用道具 举报
条件表达式不能取代一般的if语句,仅当if语句中内嵌的语句为赋值语句(且两个分支都给同一变量赋值)时才能代替if语句
回复 使用道具 举报
为什么没有大神给我指导呢??????????太没营养了么??
回复 使用道具 举报
...........没加注释,就是看这个字符串里面有多少个大写字母,小写字母,多少个数字的。
回复 使用道具 举报
  1. if (ch[i] <58 ) {
  2.                                 num++;
  3.                         } else if (ch[i] <98) {
  4.                                 ucount++;
  5.                         } else {
  6.                                 lcount++;

  7.                         }
复制代码

//这是if原语句
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马