嘿,我是java编程的初学者,我编写了一个程序来计算字符串中出现的次数,我想改进这段代码。
import java.io.*;
public class Letters
{
public static void main(String let[]) throws IOException
{
InputStreamReader r = new InputStreamReader(System.in);
BufferedReader b = new BufferedReader(r);
System.out.println("Enter The Sentense");
String s = b.readLine();
String store="";
String store1="";
for(int i=0;i<=s.length()-1;i++)
{
int count =0;
store=s.charAt(i)+"";
for(int j=0;j<=s.length()-1;j++)
{
store1=s.charAt(j)+"";
if(store.equals(store1))
{
++count;
}
}
System.out.println(store+" : "+count);
}
}
}
我得到的输出是
Enter The Sentense
ddooooonnneeeeee
d : 2
d : 2
o : 5
o : 5
o : 5
o : 5
o : 5
n : 3
n : 3
n : 3
e : 6
e : 6
e : 6
e : 6
e : 6
e : 6
但我希望得到像我这样的输出
Enter The Sentense
ddooooonnneeeeee
d:2
o:5
n:3
e:6
任何建议我该怎么做。
答案 0 :(得分:0)
取一个字符数组来保持每个字母表的轨迹。 像
这样的东西int countLetter[] = new int[26];
然后
for(int i=0;i<=s.length()-1;i++)
{
countLetter[s.charAt(i) - 97] ++;
}
然后打印内容
答案 1 :(得分:0)
您可以拥有一个HashMap
,其键是您要计算的字符,每次遇到该字符时,您只需更新+1
的{{1}}值即可计算/发生。
以下是一个例子:
HashMap
最后,这是更新角色频率的功能
//the frequency hashMap
HashMap<String, Integer> characterFrequencyMap = new HashMap<String, Integer>();
//here you reach characters of your string
for(int x=0; x< s.length; x++){
if(!s[x].equalsIgnoreCase(" ") )
updateFrequencies(s[x].toLowerCase());
}
我希望这会有所帮助。请试一试,让我知道。
答案 2 :(得分:0)
以下代码将帮助您使用HashMap Collection实现此目的,该HashMap Collection不允许重复键。
---
title: This is a great title.
author: Author Name
abstract: This is a great abstract
---
答案 3 :(得分:-1)
import java.io.*;
import java.util.TreeSet;
public class Letters
{
public static void main(String let[]) throws IOException
{
InputStreamReader r = new InputStreamReader(System.in);
BufferedReader b = new BufferedReader(r);
System.out.println("Enter The Sentense");
String s = b.readLine();
String store="";
String store1="";
TreeSet<String> ts = new TreeSet<String>();
for(int i=0;i<=s.length()-1;i++)
{
int count =0;
store=s.charAt(i)+"";
if(ts.contains(store) == false)
{
for(int j=0;j<=s.length()-1;j++)
{
store1=s.charAt(j)+"";
if(store.equals(store1))
{
++count;
}
}
System.out.println(store+" : "+count);
ts.add(store);
}
}
}
}