Java 符号频率、最高频率、符号数
爪哇。将字符串转换为等效的ASCII码,并:Java 符号频率、最高频率、符号数,java,ascii,frequency,sign,Java,Ascii,Frequency,Sign,爪哇。将字符串转换为等效的ASCII码,并: public class Loop { public static void main (String[] args) { BralecPodatkov bp = new BralecPodatkov(); // allows me to write string System.out.println("Type string: "); String niz = bp.beriNiz()
public class Loop {
public static void main (String[] args) {
BralecPodatkov bp = new BralecPodatkov(); // allows me to write string
System.out.println("Type string: ");
String niz = bp.beriNiz(); // reads my string
int[] frequencies = new int [128]; // all 128 ASCII signs
int total = 0;
System.out.println("N of signs: " + niz.length()); // sum of all signs
for (int i = 0; i < niz.length(); i++) {
int ascii = (int) niz.charAt(i);
frequencies[ascii]++;
total += 1;
}
for (int i = 0; i < frequencies.length; i++) {
if (frequencies[i] > 0)
System.out.print(" " + (((float) frequencies[i]/total)*100) + "%");
else
System.out.print(" 0%"); // prints all sign frequencies in %
}
int max = frequencies[0];
for (int i = 0; i < niz.length(); i++) {
if (frequencies[i] > max) {
max = frequencies[i]; // print sign with highest frequency
}
}
System.out.println("\n" + "Max number: " + max);
}
}
读取字符串并打印的代码:所有符号的总和、每个符号的频率(单位%)以及频率最高的符号。
问题:1) 如何在每个频率前添加适当的符号?(例如1=25%,2=25%,…)
2) 我的最大号码频率代码不起作用,它总是打印出0。我做错了什么?
3) 如何计算字符串的唯一符号数
此外,如果您发现任何错误、复杂情况或有任何意见,请务必告诉我。1-以前已回答过
for(int i=0;i0)
2-最大计数有一个输入错误:
int max = frequencies[0];
for (int i = 0; i < niz.length(); i++) {
int max=频率[0];
对于(int i=0;i
使用frequencies.length
而不是niz.length()
3-不确定你在问什么。输入字符串中的唯一字符?看看max循环中的
frequencies[i]>0
是否有效。1-因此我阅读了链接,并且…要么我没有找到答案,要么答案太复杂。你能详细说明一下吗?2-似乎不起作用,它打印出随机的小数字
for (int i = 0; i < frequencies.length; i++) {
System.out.print( Character.toChars(i) );
System.out.print( " = ");
if (frequencies[i] > 0)
int max = frequencies[0];
for (int i = 0; i < niz.length(); i++) {