//统计字符串中相同字符的个数
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class CountChar {
/**
* The main method.
*
* @param args
* the arguments
*/
public static void main(String[] args) {
String str = "yu#$SdwssddddDDDddasasas";
countChar(str);
System.out.println("#####################################");
countCharMap(str);
System.out.println("#####################################");
countChar(str, str.length());
}
/**
* 使用char判断来统计
*/
public static void countChar(String str) {
String noRepet = "";
str = str.toLowerCase();
int num = 0;
Character ch = null;
for (int i = 0; i < str.length(); i++) {
ch = str.charAt(i);
if (noRepet.equals("")) {
noRepet += ch;
} else if (noRepet.indexOf(ch) == -1) {
noRepet += ch;
} else {
continue;
}
for (int j = 0; j < str.length(); j++) {
if (str.charAt(j) == ch) {
num++;
}
}
System.out.println(ch + " : " + num);
num = 0;
}
}
/**
* 使用哈希表来统计
*/
public static void countCharMap(String str) {
char[] k = str.toLowerCase().toCharArray();
Map<Character, Integer> res = new HashMap<Character, Integer>(k.length);
List<Character> l = new ArrayList<Character>(k.length);
for (char c : k) {
if (res.containsKey(c)) {
res.put(c, res.get(c) + 1);
} else {
l.add(c);
res.put(c, 1);
}
}
for (Character c : l) {
System.out.println("" + c + " : " + res.get(c));
}
}
/**
* 使用字节来统计
*/
public static void countChar(String input, int len) {
int counts[] = new int[255];
char orders[] = new char[255];
int nextChPos = 0;
for (int i = 0; i < len; i++) {
char lowerCase = Character.toLowerCase(input.charAt(i));
// do not need track more than once
if (counts[lowerCase & 0xff]++ == 0) {
orders[nextChPos] = lowerCase;
nextChPos = lowerCase & 0xff;
}
}
for (char c = orders[0]; c > 0;) {
System.out.println(c + " : " + counts[(c & 0xff)]);
c = orders[c];
}
}
}
分享到:
相关推荐
4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...
5. 字符串和数组:在华为面试题中,问候选人给一个C的函数,关于字符串和数组,找出错误。这需要候选人了解C语言中的字符串和数组操作。 6. 防火墙实现:在华为面试题中,问候选人防火墙是怎么实现的?这需要候选人...
C++面试题 1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态? virtual修饰符会被隐形继承的。 private 也被集成,只事派生类没有访问权限而已 virtual可加可不加 子类的...
2).1000万字符串,其中有些是相同的(重复),需要把重复的全部去掉,保留没有重复的字符串。请问怎么设计和实现? 3).寻找热门查询:查询串的重复度⽐较⾼,虽然总数是1千万,但如果除去重复后,不超过3百万个,每个...
汽水瓶.py,求int型正整数在内存中存储时1的个数.py,求小球落地5次后所经历的路程和第5次反弹的高度.py,取近似值.py,删除字符串中出现次数最少的字符.py,蛇形矩阵.py,识别有效的IP地址和掩码并进行分类统计.py,输入一...
第2章程序设计面试题的解答思路9 2.1 面试过程9 2.2 关于面试题11 2.3 答题方法11 2.4 遇到疑难时13 2.5 对解决方案进行分析15 第3章链表19 3.1 单向链表19 3.1.1 头指针的修改20 3.1.2 遍历21 3.1.3 ...
第2章程序设计面试题的解答思路9 2.1 面试过程9 2.2 关于面试题11 2.3 答题方法11 2.4 遇到疑难时13 2.5 对解决方案进行分析15 第3章链表19 3.1 单向链表19 3.1.1 头指针的修改20 3.1.2 遍历21 3.1.3 ...
4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...
4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 72 5、说明生活中遇到的二叉树,用java实现二叉树 73 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...
4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 5、说明生活中遇到的二叉树,用java实现二叉树 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复...
4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...
1.4.10. 统计整数二进制表示中 1 的个数........................................................102 1.5. 面试题集合(四) ....................................................................................
4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...
a)请编写一个 C 函数,该函数给出一个字节中被置 1 的位的个数,并请给出该题的至少一个不同解法。 第一种unsigned int TestAsOne0(char log) { int i; unsigned int num=0, val; for(i...
4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...
4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...
4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名...