黑马程序员技术交流社区
标题:
【记录】代码练习-对输入字符串进行统计
[打印本页]
作者:
Kevin.Kang
时间:
2015-7-3 23:24
标题:
【记录】代码练习-对输入字符串进行统计
本帖最后由 Kevin.Kang 于 2015-7-21 14:48 编辑
统计字符类型:
package com.kxg_01;
import java.util.Scanner;
public class StringDemo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入要统计的字符串:");
String s = sc.nextLine();
//定义大写字母的变量
int bigCount = 0;
//定义小写字母的变量
int smallCount = 0;
//定义数字的变量
int numberCount = 0;
for(int x=0; x<s.length(); x++)
{
char y = s.charAt(x);
if(y>='A' && y<='Z')
{
bigCount++;
}
else if(y>='a' && y<='z')
{
smallCount++;
}
else if(y>='0' && y<='9')
{
numberCount++;
}
}
System.out.println("大写:"+bigCount);
System.out.println("小写:"+smallCount);
System.out.println("数字:"+numberCount);
}
}
复制代码
作者:
Kevin.Kang
时间:
2015-7-21 14:50
统计字符出现次数:
package com.kxg.TreeMap;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
/*
* 对键盘录入字符串进行统计。
*/
public class TreeMapTest {
public static void main(String[] args) {
// 键盘录入字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入需要统计的字符串:");
String line = sc.nextLine();
// 把字符串转为字符数组
char[] chs = line.toCharArray();
// 定义一个TreeMap集合接受键值对
TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
// 遍历字符数组,拿到集合中进行对比,因为第一次出现就是null,
// 当为null时候,把字符的值换成1,然后存入集合中
// 如果不为null,就增加键对应的值,再重新放入到集合中去,此时的值就会替换掉之前存储的
for (char ch : chs) {
Integer i = tm.get(ch);
if (i == null) {
tm.put(ch, 1);
} else {
i++;
tm.put(ch, i);
}
}
// 定义一个字符串缓冲区
StringBuffer sb = new StringBuffer();
// 遍历键值对,把键和值都添加到字符串缓冲区中
Set<Character> set = tm.keySet();
for (Character key : set) {
Integer value = tm.get(key);
sb.append(key).append("(").append(value).append(")");
}
// 把字符串缓冲区转为字符串,进行输出
String s = sb.toString();
// 按照字符自然顺序进行输出的
System.out.println(s);
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2