QUESTION:
给定一个字符串,求得这个字符串中的不同字符的个数
ANSWER:
import java.util.Scanner;
public class StrTest {
public static void main(String[] args) {
//输入 一个字符串
System.out.print("input a string:");
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
//将字符串转换成数组
char[] allChar = str.toCharArray();
//获得字符串中的不同字符
char[] dc = differentCharacter(allChar);
int charnum = 0;
// 得出字符串中不同的字符的个数
for (int i = 0; i < dc.length; i++) {
if (dc[i] == '\u0000') {//char的默认值是\u0000;遍历到未赋值的数组元素,即跳出循环
break;
}
charnum = 0;
for (int j = 0; j < allChar.length; j++) {
if (allChar[j] == dc[i]) {
charnum++;
}
}
//当dc[i]为空格时,显示为空格
if (dc[i] == ' ') {
System.out.println("空格" + " count:" + charnum);
} else {
System.out.println(dc[i] + " count:" + charnum);
}
}
}
// 取出字符串中不同的字符
static char[] differentCharacter(char[] allChar) {
char[] differentChar = new char[allChar.length];
int num = 0;
boolean isHave;
for (int i = 0; i < allChar.length; i++) {
isHave = false;
if (differentChar.length > 0) {
for (int j = 0; j < differentChar.length; j++) {
if (allChar[i] == differentChar[j]) {
isHave = true;
break;
}
}
if (!isHave) {
differentChar[num] = allChar[i];
num++;
}
} else {
differentChar[num] = allChar[i];
num++;
}
}
return differentChar;
}
}
DISPLAY: