编写一个Java程序,使用带示例的while循环查找字符串中每个字符的频率。首先,我们声明了一个256大小的charFreq整数数组。接下来,我们遍历freqStr字符串并将字符频率赋给charFreq数组。然后,我们使用另一个while循环来返回输出。
import java.util.Scanner;
public class FreqOfEachChar {
private static Scanner sc;
public static void main(String[] args) {
String freqStr;
int i = 0, j = 0;
int[] charFreq = new int[256];
sc= new Scanner(System.in);
System.out.print("\nPlease Enter String to find Frequency of each Char = ");
freqStr = sc.nextLine();
while(i < freqStr.length())
{
charFreq[freqStr.charAt(i)]++;
i++;
}
while(j < 256) {
if(charFreq[j] != 0) {
System.out.format("\n'%c' Character Occurs %d Times ", j, charFreq[j]);
}
j++;
}
}
}

Java程序使用for循环查找字符串中每个字符的频率
import java.util.Scanner;
public class FreqOfEachChar2 {
private static Scanner sc;
public static void main(String[] args) {
String freqStr;
int i;
int[] charFreq = new int[256];
sc= new Scanner(System.in);
System.out.print("\nPlease Enter String = ");
freqStr = sc.nextLine();
for(i = 0; i < freqStr.length(); i++)
{
charFreq[freqStr.charAt(i)]++;
}
for(i = 0; i < 256; i++) {
if(charFreq[i] != 0) {
System.out.format("\n'%c' Character Occurs %d Times ", i, charFreq[i]);
}
}
}
}
Please Enter String = java program
' ' Character Occurs 1 Times
'a' Character Occurs 3 Times
'g' Character Occurs 1 Times
'j' Character Occurs 1 Times
'm' Character Occurs 1 Times
'o' Character Occurs 1 Times
'p' Character Occurs 1 Times
'r' Character Occurs 2 Times
'v' Character Occurs 1 Times
这是编写一个返回字符串中每个字符频率的程序的另一种方法。
import java.util.Scanner;
public class FreqOfEachChar3 {
private static Scanner sc;
public static void main(String[] args) {
String freqStr;
int i;
int[] charFreq = new int[256];
sc= new Scanner(System.in);
System.out.print("\nEnter String to find Occurrence of each Char = ");
freqStr = sc.nextLine();
for(i = 0; i < freqStr.length(); i++)
{
char ch = freqStr.charAt(i);
if(ch >= 'a' && ch <= 'z') {
charFreq[ch - 'a']++;
}
else if(ch >= 'A' && ch <= 'Z') {
charFreq[ch - 'A']++;
}
}
for(i = 0; i < 256; i++) {
if(charFreq[i] != 0) {
System.out.format("\n'%c' Occurs %d Times ", i + 'a', charFreq[i]);
}
}
}
}
Enter String to find Occurrence of each Char = hello world
'd' Occurs 1 Times
'e' Occurs 1 Times
'h' Occurs 1 Times
'l' Occurs 3 Times
'o' Occurs 2 Times
'r' Occurs 1 Times
'w' Occurs 1 Times
此示例代码查找字符串字符频率与上面相同。在这里,我们使用Java函数分离了逻辑。
import java.util.Scanner;
public class FreqOfEachChar4 {
private static Scanner sc;
public static void main(String[] args) {
String freqStr;
sc= new Scanner(System.in);
System.out.print("\nEnter Any Text = ");
freqStr = sc.nextLine();
FreqOfEachChar(freqStr);
}
public static void FreqOfEachChar(String freqStr) {
int i;
int[] charFreq = new int[256];
for(i = 0; i < freqStr.length(); i++)
{
charFreq[freqStr.charAt(i)]++;
}
for(i = 0; i < 256; i++) {
if(charFreq[i] != 0) {
System.out.format("\n'%c' Character Occurs %d Times ", i, charFreq[i]);
}
}
}
}
Enter Any Text = tutorial gateway
' ' Character Occurs 1 Times
'a' Character Occurs 3 Times
'e' Character Occurs 1 Times
'g' Character Occurs 1 Times
'i' Character Occurs 1 Times
'l' Character Occurs 1 Times
'o' Character Occurs 1 Times
'r' Character Occurs 1 Times
't' Character Occurs 3 Times
'u' Character Occurs 1 Times
'w' Character Occurs 1 Times
'y' Character Occurs 1 Times