![a56627073bdf8c3b14a8cfd07bf53958.png](https://img-blog.csdnimg.cn/img_convert/a56627073bdf8c3b14a8cfd07bf53958.png)
今天是复习阶段,就写一个小程序,用来复习之前学过的知识
通过键盘录入,提取字符和数量
思路:
1.首先我们要从键盘录入一个字符串
![2407153fa1f69c8b3c3e0272712e601d.png](https://img-blog.csdnimg.cn/img_convert/2407153fa1f69c8b3c3e0272712e601d.png)
2.定义数组储存提取字符和数字
![35cec252a414244bafd3af561753969e.png](https://img-blog.csdnimg.cn/img_convert/35cec252a414244bafd3af561753969e.png)
3.循环比较是否有重复,如果重复则数字+1
![7db3d8086b114229d4e2f9367ebeb4d9.png](https://img-blog.csdnimg.cn/img_convert/7db3d8086b114229d4e2f9367ebeb4d9.png)
4.遍历打印数组
![8aad33492f518283516415f24b804308.png](https://img-blog.csdnimg.cn/img_convert/8aad33492f518283516415f24b804308.png)
完整代码:
package cn.sxt.test;
import java.util.Scanner;
public class CountString {
public static void main(String args[]){
System.out.println("请输入任意一串字符串");
Scanner scanner = new Scanner(System.in);
String testString = scanner.nextLine();//得到字符串
char[] printString = new char[testString.length()];//最终打印的字符数组
int[] countString = new int[testString.length()];//最终打印的字符数组计数
for(int i = 0;i < testString.length();i++){//一个个输入
for(int j = 0;j < testString.length();j++){//一个个计数
if(testString.charAt(i) == printString[j]){
countString[j]++;
break;//如果检测到重复,计数加1,跳出内层循环继续外层循环
}else if(printString[j] == 0){
printString[j] = testString.charAt(i);
countString[j]++;
break;//如果检测到空值,说明没重复,添加值,并且计数加1,跳出内层循环继续外层循环
} //两个都不满足说明你或许没检测到,接着转到最后吧
}
}
for(int i = 0;i < testString.length();i++){
if(printString[i] != 0){
System.out.print(printString[i]+"["+countString[i]+"]");
}//后面可能有空值,就不打了
}
}
}