黑马程序员技术交流社区
标题:
关于 取出一个字符串中字母出现的次数的问题
[打印本页]
作者:
天之饺子
时间:
2015-9-18 00:06
标题:
关于 取出一个字符串中字母出现的次数的问题
需求:取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
两种方法写的 大家一起来看看还有其他方法没有?
import java.util.*;
public class Test1 {
public static void main(String[] args) {
String str = "abcdekka27qoq";
PanDuan(str);
//useMapPanDuan(str);
}
public static void PanDuan(String str){
int i = 0,x=0,y,m;
for(y='a'; y<='z'; y++){
m=-1;
do {
x = str.indexOf(y, i);
i=x+1;
m++;
//System.out.println("m="+m+",i="+i+",x="+x);
} while (x!=-1);
if(m!=0){
System.out.print((char)y+"("+m+")");
}
}
System.out.println("");
}
public static void useMapPanDuan(String str){
TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
char[] chs = str.toCharArray();
Set<Character> s = tm.keySet();
for(Character ch:chs){
if(ch>='0'&&ch<='9')
continue;
Integer i = tm.get(ch);
if(i==null){
tm.put(ch,1);
}else{
tm.put(ch,i+1);
}
}
StringBuilder sb = new StringBuilder();
for(Character ch1: s){
sb.append(ch1).append("(").append(tm.get(ch1)).append(")");
}
System.out.println(sb);
}
}
复制代码
作者:
1406046710
时间:
2015-9-18 01:28
public class test1
{
public static void main(String[] args){
String str = "abcdekka27qoq";
System.out.println("字符串:"+str);
System.out.print("输出格式:");
str = str.replaceAll("\\d+","");
int start,end,num;
char temp;
while(!(str.isEmpty())){
temp=str.charAt(0);
start=str.length();
System.out.print(String.valueOf(temp));
str=str.replaceAll(String.valueOf(temp),"");
end=str.length();
num=start-end;
System.out.print("("+num+")");
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2