java检查字母频率
我正在写一个程序来计算一个句子的频率、字数和字长。我已经编写了代码,但在初始化java检查字母频率,java,arrays,Java,Arrays,我正在写一个程序来计算一个句子的频率、字数和字长。我已经编写了代码,但在初始化数组时出错,但我不确定如何使用多种方法进行初始化。我在x[I]处收到一个错误 import java.util.Scanner; public class ScanningText { public static int countLetters (String x) { int totalLetter, i; totalLetter = 0; for (
数组时出错,但我不确定如何使用多种方法进行初始化。我在x[I]
处收到一个错误
import java.util.Scanner;
public class ScanningText {
public static int countLetters (String x) {
int totalLetter, i;
totalLetter = 0;
for (i = 0; i < x.length(); i++) {
for (int upper = 65; upper <= 90; upper++) {
if (x[i] == upper)
totalLetter += 1;
} for (int lower = 97; lower <= 122; lower++) {
if (x[i] == lower)
totalLetter+=1;
}
} return totalLetter;
}
public static int words (String x) {
int totalWord, i;
for (i = 0; i < x.length(); i++) {
if (x[i] == 32)
totalWord += 1;
} return totalWord;
}
public static int longest (String x) {
int longestWord, wordLength, i;
longestWord = 0;
wordLength = 0;
for (i = 0; i < x.length(); i++) {
for (int upper = 65; upper <= 90; upper++) {
if (x[i] == upper)
wordLength += 1;
} for (int lower = 97; lower <= 122; lower++) {
if (x[i] == lower)
wordLength += 1;
} if (x[i] == 32 || x[i + 1] == 0) {
if (wordLength > longestWord)
longestWord = wordLength;
wordLength = 0;
}
} return longestWord;
}
public static int frequency (String x) {
int letter, i;
int[] amount;
amount = new int[26];
for (i = 0; i < x.length(); i++) {
for (int upper = 65; upper <= 90; upper++) {
if (x[i] == upper) {
letter = upper;
letter = letter - 65;
for (int d = 0; d < 26; d++) {
// d is occurence of each letter
if (d == letter)
amount[d] += 1;
}
}
} for (int lower = 97; lower < 123; lower++) {
if (x[i] == lower) {
letter == lower;
letter = letter - 97;
for (int k = 0; k <= 25; k++) {
if (k == letter)
amount[k] += 1;
}
}
}
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String text;
int[] amount;
amount = new int[26];
String list = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
System.out.println("Enter a single line of text");
text = input.nextLine();
System.out.println("Total letters: " + countLetters(text));
System.out.println("Total Words: " + words(text));
System.out.println("Longest word length is: " + longest(text));
System.out.println("Frequency is: " + frequency(text));
for ( int i = 0; i < 26; i++) {
if (amount[i] != 0)
System.out.println(list[i] + " -- " + amount[i]);
}
}
}
import java.util.Scanner;
公共类扫描文本{
公共静态整数计数字母(字符串x){
int Totaletter,i;
Totaletter=0;
对于(i=0;i 对于(int upper=65;upperx
是String
引用而不是数组
public static int countLetters (String x) {
如果您想在我看到的位置添加ess字符,谢谢!现在我可以运行程序了,频率不会显示。有没有办法从频率方法中提取表达式并将其打印到最后一行,其中显示“频率为:”?