黑马程序员技术交流社区
标题:
从字符串中提取
[打印本页]
作者:
黑马伍仪华
时间:
2012-3-5 13:01
标题:
从字符串中提取
有一个字符串ABCGoag-afg+++怎么把"-" " a" "+"的次数求出来,用集合的方式
作者:
胡元
时间:
2012-3-5 13:39
"_"的次数?你意思是字符串的次数?字符串有“次数”这个属性吗?你是要把那三个元素提取出来在放到一个集合中吗?
作者:
黄秋
时间:
2012-3-6 07:13
怪了,为何指定用集合的方式呢?下面用 HashSet 写了写(感觉用HashMap更好):
public static void main(String[] args) {
HashSet<Character> hs = new HashSet<Character>();
String s="ABCGoag-afg+++";
int m=1,n=1,l=1; //记录次数
for(int i=0;i<s.length();i++){
Character ch=s.charAt(i);
if(hs.add(ch)==false){ //若是重复,则add失败
switch(ch) {
case '-' : m++; break;
case 'a' : n++; break;
case '+' : l++; break;
}
}
}
System.out.println("-: "+m+" a:"+n+" +:"+l);
}
复制代码
作者:
黄秋
时间:
2012-3-6 07:56
本帖最后由 黄秋 于 2012-3-6 08:05 编辑
用HashMap更靠谱:
public static void main(String[] args) {
HashMap<Character,Integer> hm = new HashMap<Character,Integer>();
String s="ABCGoag-afg+++";
Character ch;
for(int i=0;i<s.length();i++){
ch=s.charAt(i);
if(hm.containsKey(ch)) //若是重复,则+1
hm.put(ch,hm.get(ch)+1);
else
hm.put(ch,1);
}
System.out.println("-: "+hm.get('-')+" a:"+hm.get('a')+" +:"+hm.get('+'));
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2