输入字符串,显示字符串中各个字符出现的次数
题目:任意输入一字符串,之后显示该字符串中每个字符出现的次数。
public class countLetterTest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Please enter the String:");
String str = input.nextLine();
countLetter(str);
input.close();
}
public static void countLetter(String s) {
char[] ch1 = s.toCharArray();
char[] ch2 = new char[s.length()];
int[] count_number = new int[s.length()];
boolean repeatchar = false;
/*
* 判断字符和前一个字符是否重复
*/
for (int j = 0; j < ch1.length; j++) {
for (int i = j - 1; i >= 0; i--) {
if (ch1[j] == ch1[i]) {
repeatchar = true;
break;
}
}
/*
*如果不重复的话,则将ch1中 对应的数组存储在ch2中。
*/
if (!repeatchar) {
ch2[j] = ch1[j];
/*
* 统计字符的个数
*/
for (int k = j; k < ch1.length; k++) {
if (ch2[j] == ch1[k]) {
count_number[j]++;
}
}
repeatchar = false;
}
}
for (int j = 0; j < ch2.length; j++) {
// if (Character.isLetter(ch2[j]) || Character.isDigit(ch2[j]))
System.out.println("char:" + ch2[j] + " is:" + count_number[j]);
}
}
}
基本的思路:
1、将输入的字符串转化为数组。
2、再创建一个字符数组来储存之前的字符数组中没有重复的字符,并且统计其个数存于另外一个整数数组当中。
存在的问题:
1、存储无重复的字符的字符数组不能随意的改变大小【以后学习深入之后再作改进】
2、只能显示字符和数字,特殊字符则无法正常显示【后续解决】