Java 将26个整数的数组转换为char';s(字母表)
我使用java扫描器从键盘输入文本字符串,然后让我的程序创建一个表,输出a-z,并显示在输入字符串中找到的每个字母的编号。(字母频率) 我的司机/主班Java 将26个整数的数组转换为char';s(字母表),java,Java,我使用java扫描器从键盘输入文本字符串,然后让我的程序创建一个表,输出a-z,并显示在输入字符串中找到的每个字母的编号。(字母频率) 我的司机/主班 import java.util.*; public class LetterDriver{ public static void main(String[] args){ Scanner s = new Scanner(System.in); LetterProfile profile = new LetterProfil
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();
}
}
import java.util.*;
公营信笺{
公共静态void main(字符串[]args){
扫描仪s=新的扫描仪(System.in);
LetterProfile=新的LetterProfile();
字符串tScan=“”;
int numReturns=0;
而(numReturns<2){
tScan=s.nextLine();
如果(tScan.length()==0){
numReturns++;
}
否则{
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());
}
}
public class-LetterProfile{
整数分数[]=新整数[26];
公共void countChars(字符串s){
s=s.toLowerCase();
字符a='a';
对于(int i=0;i
程序进行编译,当我运行它时,它允许我输入,但它给我的唯一输出是最常用的数字形式的字母(因为我的数组是0-25,0=a,1=b)
基本上,我很难做到的是让我的代码输出一个a-z表,同时在旁边显示字母频率。有没有一个简单的方法来完成这件事
谢谢。我不确定我是否理解-当然它所做的就是打印最频繁的字母-这就是
printfresults
方法所做的
只需在score
数组中循环,并在相应字母旁边打印每个分数,您就应该拥有整个频率表
将其添加到printResults
方法中已有的代码中。结果是,它将首先打印最频繁的字母,然后是字母频率列表,从数字1开始
for (int i = 0; i < score.length; i++) {
System.out.println( (i+1) + ": " + score[i]);
}
等等。试试这个:
for (int i = 0; i<score.length; i++){
System.out.println(score[i]);
}
for(int i=0;我很难想出一个方法来做这件事。我知道了。更新了一个循环-我的坏。哇,终于有点进步了。我现在唯一的问题是在旁边显示字母表,而不是数字。非常感谢。@smit不幸没有:(@aiuna你得到的输出是什么?System.out.println((char)(i+65)+:“+score[i]);
我想这就可以了。
for (int i = 0; i<score.length; i++){
System.out.println(score[i]);
}