gpt4 book ai didi

java - 将 26 个整数的数组转换为字符(字母)

转载 作者:行者123 更新时间:2023-11-30 04:27:26 25 4
gpt4 key购买 nike

我正在使用 java 扫描仪从键盘输入文本字符串,然后让我的程序创建一个输出 a-z 的表格并显示在输入字符串中找到的每个字母的编号。 (字母频率)

我的驱动程序/主类

import java.util.*;

public class LetterDriver{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
LetterProfile profile = new LetterProfile();
String tScan = " ";
int numReturns = 0;
while(numReturns < 2){
tScan = s.nextLine();
if (tScan.length() == 0){
numReturns++;
}
else{
profile.countChars(tScan);
numReturns = 0;
}
}
profile.printResults();

}

}

我的个人资料类

public class LetterProfile {
int score[] = new int [26];

public void countChars (String s) {
s = s.toLowerCase();
char a = 'a';
for (int i = 0; i < s.length(); i++) {
int next = (int)s.charAt(i) - (int) a;
if ( next<=26 && next >= 0)
score[next]++;


}
}

public int largestLength() {
int largest = 0;
int largestindex = 0;
for(int a = 0; a<26; a++) {
if(score[a] > largest) {
largest = score[a];
largestindex = a;

}
}
return (char)largestindex;

}


public void printResults() {
largestLength();

System.out.println(("Most Frequent") + (" :") + largestLength());
}
}

程序编译,当我运行它时,它允许我输入输入,但它给我的唯一输出是最常用的数字形式的字母(因为我的数组是 0-25,其中 0 = a, 1 = b)

基本上,我遇到的麻烦是让我的代码输出 a-z 表格,同时在其旁边显示字母频率。有没有简单的方法可以完成此任务?

谢谢。

最佳答案

我不确定我是否理解 - 当然它所做的只是打印最常见的字母 - 这就是 printResults 方法所做的全部事情。

只需循环遍历 score 数组并在相应字母旁边打印每个分数,您就应该拥有整个频率表。

将此添加到 printResults 方法中已有的代码中。结果是,它将首先打印最常见的字母,然后是字母频率列表,从数字 1 开始。

for (int i = 0; i < score.length; i++) {
System.out.println( (i+1) + ": " + score[i]);
}

例如:

Most frequent: e
1: 5
2: 0
3: 2
4: 0
5: 15
...

等等。

关于java - 将 26 个整数的数组转换为字符(字母),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15512763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com