黑马程序员技术交流社区
标题:
请问以下字符串用什么方法能最快求出来?要求有注释
[打印本页]
作者:
yinjiek
时间:
2013-7-25 12:38
标题:
请问以下字符串用什么方法能最快求出来?要求有注释
本帖最后由 yinjiek 于 2013-7-29 14:28 编辑
:求出以下字符串中每个字母出现的次数,如果字母有重复相连的并用其它字符替换掉,再将字符串字母的顺序倒转打印出来;
String str="123213sadfsafdsagdsssdfae4343";
作者:
曹奎
时间:
2013-7-25 13:44
import java.util.HashMap;
public class Test02 {
public static void main(String[] args) {
String str="123213sadfsafdsagdsssdfae4343";
//容器 key是字母 值是字母出现的次数
HashMap<Character,Integer> hm=new HashMap<Character,Integer>();
//循环字符串 进行判断计数存储
for(int i=0;i<str.length();i++){
//获得当前循环i下标所对应的字符
char ch=str.charAt(i);
//获取当前字符是否在容器里面存储过 若存储过返回当前字符出现的当前次数 否则返回null
Integer hmch=hm.get(ch);
if(hmch!=null){
//将当前出现次数+1之后再次存储
hm.put(ch, ++hmch);
}else{
//否则就是没存储过 第一次存储 当前出现次数是1
hm.put(ch,1);
}
}
//打印HashMap集合
System.out.println(hm);
//将str字符串放入字符串缓冲区
StringBuffer s=new StringBuffer(str);
//reverse()方法 就是将字符串反转
System.out.println(s.reverse());
}
}
作者:
jttsai
时间:
2013-7-25 13:55
import java.util.HashMap;
import java.util.Map;
class Test {
/**
* 此方法实现统计字符串中字符个数逻辑,此方法返回Map集合, key为字符,value为字符出现的次数
*/
public static Map<Character, Integer> countChar(String str) {
char[] charArray = str.toCharArray(); // 将字符串转换为字符数组
Map<Character, Integer> map = new HashMap<Character, Integer>(); // 创建map对象用来存放数据
for (int i = 0; i < charArray.length; i++) { // 遍历该字符数组
Character key = charArray[i];
Integer va = map.get(key);
if (va != null) {
va += 1; // 如果作为key的字符前面已经出现过,则出现次数va加1
} else {
va = 1; // 如果作为key的字符前面没有出现过,则出现次数va为1
}
map.put(key, va); // 将字符极其出现的次数放进map集合,如果之前有,则覆盖
}
return map;
}
/**
* main方法入口
*/
public static void main(String[] args) {
String str = "123213sadfsafdsagdsssdfae4343"; // 需要统计的字符串
Map<Character, Integer> map = countChar(str); // 调用方法
System.out.println(map);
// 将str字符串放入字符串缓冲区
StringBuffer s = new StringBuffer(str);
// reverse()方法 就是将字符串反转
System.out.println(s.reverse());
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2