我想得到一个字符串,计算字符串中的任何字母在字符串中出现了多少次,并打印字母和数字所以我做了什么:
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
String str;
Scanner in = new Scanner(System.in);
System.out.println("enter name");
str = in.nextLine();
char[] c1 = str.toCharArray();
int[] f = new int[str.length()];
for(int i=0;i<str.length();i++) {
for(int j=0;j<str.length();j++) {
if(c1[i]==c1[j]) {
f[i]++;
}
}
}
for(int k=0;k<c1.length;k++) {
for(int l=0;l<c1.length;l++) {
if(c1[k]==c1[l]) {
if(l!=k) {c1[k]=0;f[k]=0;}
}
}
System.out.println(c1[k]+"="+f[k]);
}
}
}
有两个问题:
1. 当我打印时,它会打印两次重复的字母(或三次或更多取决于字母在字符串中出现的次数)。所以我添加了另外 2 个循环(k 和 l)来删除重复的字母,但现在不是重复的字母,而是打印我:一个正方形和一个零,我怎样才能从字符中删除字母和数字和int 数组的?(例如,当我输入名称“elichai”时,我得到:
e=1
l=1
(正方形)=0
c=1
h=1
a=1
i=2
2.它删除的字母是第二个字母而不是第一个
(在“elichai”示例中,它删除了第一个'i'而不是第二个'i')谢谢!