我刚刚开始使用java,我试图创建一个嵌套的for循环(不使用数组),它给了我一个字符串中有多少个字母(来自字母表)的频率为零。因此,如果我的字符串是" test",那么它应该显示" 23个字母"作为答案,因为字符串中只有26个字母中有3个。但是,我的程序缺少信息。我试图确保我的程序可以针对我正在寻找的特定频率,即。 0
到目前为止,这是我的计划:
public class FindMaxandMinofString {
public static void main(String[] args) {
char charToLookFor;
String s = "test";
int count = 0;
for (charToLookFor = 'a'; charToLookFor = 'z' ;charToLookFor++)
{
for(int l = 0; l < s.length(); l++) {
if(s.charAt(l) == charToLookFor)
count++;
}
System.out.print(count);
}
答案 0 :(得分:1)
不是计算0的计数,而是从26的计数开始,并在找到新的字母时从中减去。当你找到一个时,它会从循环中导入break
,否则你可能会多次计算每个字母。
public class FindMaxandMinofString {
public static void main(String[] args) {
char charToLookFor;
String s = "test";
int count = 26;
for (charToLookFor = 'a'; charToLookFor <= 'z' ;charToLookFor++)
{
for(int l = 0; l < s.length(); l++)
{
if(s.charAt(l) == charToLookFor)
{
count--;
break;
}
}
}
System.out.print(count + " letters");
}
}
答案 1 :(得分:0)
您可以使用哈希集完成此任务 - 当您找到一个字符时,将其添加到哈希集。在您完成整个字符串的迭代后,您的答案将减去26减去最终哈希集的大小。