我写了一个代码来找出在Java的txt文件中的字母表的每个字母的频率,并将结果写入另一个文件.The问题是,frekuenca(字符串文本)有一个错误的原因,它必须返回一个类型String.Can的结果你想出一个解决的方法吗?谢谢!
public class Frekuenca_File {
public static void main(String args[]) throws FileNotFoundException {
Scanner input = new Scanner(new File("teksti.txt"));
PrintStream output = new PrintStream(new File("frekuenca.txt"));
while (input.hasNextLine()) {
String fjala = input.next();
output.print(frekuenca(fjala));
}
}
public static String frekuenca(String text) {
int frekuenca = 0;
for (int i = 'a'; i <= 'Z'; i++) {
for (int j = 0; j < text.length() - 1; j++) {
if (i == text.charAt(j)) {
frekuenca++;
}
}
String result = "" + i + ":" + frekuenca;
return result;
}
}
}
发布于 2018-06-05 08:28:57
要回答您的问题,您可以始终返回空字符串对象。然而,我会以不同的方式处理这个问题。我会将文本文件解析为字符。将26个字母的出现次数存储在大小为26 (0 - 25)的数组中。索引0是a等的个数。每个字符都是一个8位数字。例如,a是97。(查找ASCII表)。因此,要递增的数组的索引是char (ASCII值)减去97。所以97 - 97是索引0。B是98 - 97是索引1。
发布于 2018-06-05 06:47:44
创建简单的字符串函数,如下所示:
public static void main (String[] args) {
String output = make_string("tyrone", 5);
System.out.println(output);
}
public static String make_string(String string, int x) {
String return_string = (string + ":" + x);
return return_string;
}
发布于 2018-06-05 06:51:57
在函数frekuenca中,在for循环....i=“a”和i<"z“中,这导致的错误i是整数,并且与字符进行比较,因此只需在for循环中进行类型转换或使用asci值,或者可以使用charAt()函数:....i= (int = (int)a;i <= (int)Z;i++) char a='A'char z='Z‘当存储结果变量' result’是字符串而i是整数时,您不能在string.....do类型中存储整数i first to character : string result = "“+ (char)i + ":”+ frekuenca;
请参阅链接
How to count frequency of characters in a string?
https://www.geeksforgeeks.org/print-characters-frequencies-order-occurrence/
https://stackoverflow.com/questions/50689682
复制相似问题