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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

前几天看到论坛里有人说的那个按照格式a(7)b(5)c(3),,,打印的那个题,不过题有点不一样,就是字符串是“abadsfs#%¥@&*sdf”,也就是说把字母按照那个格式打印出来,其他的不要,我想问下大家的思路是怎么样的,其实也就是看大家在这个程序里把字母提取出来怎么实现的,看看有没有简单的方法。。。

24 个回复

倒序浏览
建立一个Map集合。字符串转成字字符数组,遍历数组,判断字符范围是否在字母的区域。在的话判断Map集合里有没有,有的话获取原值加一,没有的话建立一个。不在字母区的直接舍掉就好了。
回复 使用道具 举报
es2379649 发表于 2014-8-4 22:21
建立一个Map集合。字符串转成字字符数组,遍历数组,判断字符范围是否在字母的区域。在的话判断Map集合里有 ...

你准备怎么用什么方法判断是不是字母呢
回复 使用道具 举报
月影箫风起k 发表于 2014-8-5 09:27
你准备怎么用什么方法判断是不是字母呢

>='a'  && <='z' || >='A'  && <='Z'不就挺简单的了?
回复 使用道具 举报
月影箫风起k 发表于 2014-8-5 09:27
你准备怎么用什么方法判断是不是字母呢

a是97,z是122,A是65,Z是90.让获得的字符与97-122和65-90之间进行比较,在范围内的就是。楼下的更简单。
回复 使用道具 举报
想法跟楼上的一样
回复 使用道具 举报
es2379649 发表于 2014-8-5 09:48
a是97,z是122,A是65,Z是90.让获得的字符与97-122和65-90之间进行比较,在范围内的就是。楼下的更简单 ...

嗯,看看还有吗
回复 使用道具 举报

字母之间能互相直接比较?
回复 使用道具 举报
正则能不能
回复 使用道具 举报
月影箫风起k 发表于 2014-8-5 13:56
字母之间能互相直接比较?

当然可以,都是char,为什么不能比?
回复 使用道具 举报

和我想的一样{:2_36:}
回复 使用道具 举报
fantacyleo 发表于 2014-8-5 14:06
当然可以,都是char,为什么不能比?

但是符号呢
回复 使用道具 举报

符号?你是指@$&这些??它们也是char类型啊
回复 使用道具 举报
  1. import java.util.regex.*;
  2. class RegexDemo
  3. {
  4. public static void main(String[] args)
  5. {
  6. String str = "asdjfg2315asdj^(&%sadf";
  7. String reg = "[a-zA-Z]+";

  8. Pattern p = Pattern.compile(reg);
  9. Matcher m = p.matcher(str);

  10. while(m.find())
  11. {
  12. System.out.print(m.group());
  13. }
  14. }
  15. }
复制代码

回复 使用道具 举报
fantacyleo 发表于 2014-8-5 22:11
符号?你是指@$&这些??它们也是char类型啊

好吧,这个我不太清楚啊,还有直接能用大小比较符连接字母吗,我记得要初始化的吧
回复 使用道具 举报

嗯,和我想的一样果断正则
回复 使用道具 举报
月影箫风起k 发表于 2014-8-6 08:18
好吧,这个我不太清楚啊,还有直接能用大小比较符连接字母吗,我记得要初始化的吧 ...

可以啊。初始化是必须的,变量不初始化,编译都通不过
回复 使用道具 举报
fantacyleo 发表于 2014-8-6 10:30
可以啊。初始化是必须的,变量不初始化,编译都通不过

那怎么初始化才能直接比较呢求教,真心不知道
回复 使用道具 举报
月影箫风起k 发表于 2014-8-6 13:36
那怎么初始化才能直接比较呢求教,真心不知道

不是吧,变量初始化,不就是类似:
char c = '3';
回复 使用道具 举报
感觉正则比较简单点                                                              
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马