黑马程序员技术交流社区
标题:
统计字符串中每个字符出现的次数,求解
[打印本页]
作者:
七宝
时间:
2013-8-17 01:46
标题:
统计字符串中每个字符出现的次数,求解
本帖最后由 七宝 于 2013-8-17 23:58 编辑
统计字符串中每个字符出现的次数?怎么样统计,字符串键盘输入
求大神代码演示
作者:
王松松
时间:
2013-8-17 02:57
重要的是思路:
1,输入字符串
2,将字符串转为字符数组
3,定义一个Map集合,存入字符和对应的次数
4,遍历字符数组
a,将字符和Map集合中的key值比较
作者:
王松松
时间:
2013-8-17 03:03
哇擦,没写完就提交了,接着。
b,如果Map集合没有字符,则返回null,将字符存入Map集合,值为1
c,如果有则,存入字符,值为原值加1;
d,遍历Map集合,获取Map集合迭代器,取出key和value,即字符和对应的次数。
e,定义一个StringBuilder容器,添加取出的key和value到容器中。
最后打印容器Over。
希望对你有帮助!朋友,代码需要自己敲的。
作者:
panningwjr
时间:
2013-8-17 13:40
思路和上面差不多,代码如下,供楼主参考
public static void main(String[] args) {
method_1();
}
public static void method_1() {
String str = "abbcccddddeeeee";
char maxKey = 0;// 出现次数最多的字符
int maxValue = 0;// 出现次数最多的字符的出现次数
// 字符串转换成数组
char[] i = str.toCharArray();
Map<Character, Integer> m = new HashMap<Character, Integer>();
// 循环遍历数组中的元素,将对应关系存入map集合中
int value = 0;
for (int x = 0; x < i.length; x++) {
// 如果字符已经存在集合中了,个数就加1
if (m.containsKey(i[x])) {
value = m.get(i[x]) + 1;
} else {
value = 1;
}
m.put(i[x], value);
}
System.out.println(m.toString());
// 使用迭代器遍历map集合,按要求取出需要的数据
Set<Character> s = m.keySet();
Iterator<Character> it = s.iterator();
while (it.hasNext()) {
// 获得key值
char j = it.next();
// 取出出现次数最多的字符
if (m.get(j) > maxValue) {
maxKey = j;
maxValue = m.get(j);
} else if (m.get(j) == maxValue) {
if (j > maxKey) {
maxKey = j;
}
}
}
System.out.println("maxKey:" + maxKey + "--maxValue:" + maxValue);
}
复制代码
作者:
HM代景康
时间:
2013-8-17 13:46
import java.util.Iterator;import java.util.Map;import java.util.TreeMap;public class Test { @SuppressWarnings("unchecked") public static void main(String[] args) { String str = null; try { str = args[0]; } catch (ArrayIndexOutOfBoundsException e) { System.out.println("请输入参数!"); System.exit(0); } Map tree = new TreeMap(); for (int i = 0; i < str.length(); i++) { char ch = str.charAt(i); if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) { if (!tree.containsKey(ch)) { tree.put(ch, new Integer(1)); } else { Integer in = (Integer) tree.get(ch) + 1; tree.put(ch, in); } } } Iterator tit = tree.keySet().iterator(); while (tit.hasNext()) { Object temp = tit.next(); System.out.print(temp.toString() + "(" + tree.get(temp) + ")"); } }}
作者:
HM代景康
时间:
2013-8-17 13:49
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
public class Test
{
@SuppressWarnings("unchecked")
public static void main(String[] args)
{
String str = null;
try {
str = args[0];
} catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("请输入参数!");
System.exit(0);
}
Map tree = new TreeMap();
for (int i = 0; i < str.length(); i++)
{
char ch = str.charAt(i);
if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
{
if (!tree.containsKey(ch))
{ tree.put(ch, new Integer(1)); }
else
{
Integer in = (Integer) tree.get(ch) + 1;
tree.put(ch, in);
}
}
}
Iterator tit = tree.keySet().iterator();
while (tit.hasNext())
{ Object temp = tit.next();
System.out.print(temp.toString() + "(" + tree.get(temp) + ")"); }
}
}
作者:
兜兜转转
时间:
2013-8-17 13:57
package com.map;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class TreeMapDemo
{
public static void main(String[] args)
{
//System.out.println(getCount("AAC-A+=BBB/CEDD"));
}
public static String getCount() throws Exception
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = null;
while((s = br.readLine())!= null)
{
break;
}
//将传入的字符串利用String类的toCharArray()转变为字符数组并赋值给chs
char[] chs = s.toCharArray();
TreeMap<Character,Integer> tp = new TreeMap<Character,Integer>();
for(int i = 0; i<chs.length; i++)
{
if (!(chs[i] >= 'a' && chs[i] <= 'z' || chs[i] >= 'A' && chs[i] <= 'Z'))
{
continue;
}
Integer value = tp.get(chs[i]);
int count = 0;
if(!(value == null))
{
count=value;
}
count++;
tp.put(chs[i],count);
}
Set<Map.Entry<Character,Integer>> set = tp.entrySet();
Iterator<Map.Entry<Character,Integer>> mapit = set.iterator();
StringBuilder sb = new StringBuilder();
while(mapit.hasNext())
{
Map.Entry<Character,Integer> map = mapit.next();
Character key = map.getKey();
Integer value = map.getValue();
sb.append(key+" 出现 "+value+"次。"+"\n");
}
return sb.toString();
}
}
复制代码
作者:
EYE_SEE_YOU
时间:
2013-8-18 07:13
统统都是大神
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2