黑马程序员技术交流社区
标题:
字符串的有关问题
[打印本页]
作者:
官珺伟
时间:
2014-4-20 12:18
标题:
字符串的有关问题
本帖最后由 官珺伟 于 2014-4-20 21:59 编辑
取出一个字符串中字母出现的次数。如:字符串:"abcde%^kka27qoq" ,输出格式为:a(2)b(1)k(2)...
作者:
anqi
时间:
2014-4-20 12:33
本帖最后由 anqi 于 2014-4-20 12:41 编辑
public class Convert {
public static void main(String[] args) {
String str = "abcde%^kka27qoq";
CountChar(str);
}
private static void CountChar(String str) {
char[] c = str.toCharArray(); //转换为字符数组
System.out.println(c);
Map<Character,Integer> map = new LinkedHashMap<Character,Integer>(); //建立一个Map集合(因为map集合key相同会覆盖)
for (int i = 0; i < c.length; i++) { //变量char[]数组
if ((c[i] <= 90 && c[i] >= 65)||(c[i]>=97&&c[i]<=112)) { //判断只取字母
//往集合里面添加
if (!(map.keySet().contains(c[i]))) {
map.put(c[i], 1); //第一次出现就添加一次
} else {
map.put(c[i], map.get(c[i]) + 1); //多次出现就取出出现的次数在加1后填入
}
}
}
//将集合里面的内容转换为字符串
StringBuilder sb = new StringBuilder();
Iterator<Map.Entry<Character,Integer>> it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Character,Integer> entry = it.next();
sb.append(entry.getKey() + "(" + entry.getValue() + ")");
}
System.out.println(sb);
}
}
复制代码
作者:
の放下执著
时间:
2014-4-20 21:41
取出一个字符串中字母出现的次数。如:字符串:"abcde%^kka27qoq" ,输出格式为:a(2)b(1)k(2)...
package itheima.day16;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
//练习:获取一个字符串中字母出现的次数,希望打印结果为:a(1)b(2)...
//思路:1、将字符串转换成字符数组,因为要对每一个字母进行操作;
// 2、定义一个map集合,因为打印结果的字母有顺序,TreeMap;
// 3、遍历字符数组,将每一个字母作为键去查map集合,如果返回null,
// 存入;如果不是null,则对应的值加1。
// 4、将map集合中的数据变成指定的字符串形式返回。
public class MapTest3 {
public static void main(String[] args) {
String str ="54653gfghfhvfagfgafsdg";
System.out.println(charCount(str));
}
public static String charCount(String str){
// 1、将字符串转成字符数组
char[] chs = str.toCharArray();
// 2、键值对,需排序,TreeMap
TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
// 3、遍历字符数组,将每个字符、出现次数 存入到TreeMap集合中
int count =0;
for(int x=0;x<chs.length;x++){
if(!(chs[x]>='a'&& chs[x]<='z' || chs[x]>='A'&&chs[x]<='Z'))//非字母,不存
continue;
Integer value = tm.get(chs[x]);
if(value!=null)
count = value;
count++;
tm.put(chs[x], count);
count=0;
}
// 4、取出TreeMap集合中的元素,存入到StringBuilder容器中
StringBuilder sb = new StringBuilder();
Set<Map.Entry<Character,Integer>> entrySet = tm.entrySet();
Iterator<Map.Entry<Character,Integer>> it = entrySet.iterator();
while(it.hasNext()){
Map.Entry<Character, Integer> me = it.next();
Character ch = me.getKey();
Integer value = me.getValue();
sb.append(ch+"("+value+")");
}
// 5、以字符串形式返回
return sb.toString();
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2