Java中的方法返回

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (40)

我编写了一段代码,用Java语言在txt文件中找到每个字母的频率,然后将结果写到另一个文件中。问题是,frekuenca(字符串文本)有一个错误,因为它必须返回String类型的结果。您能想出解决这个问题的方法吗?

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;
        }

    }
}
提问于
用户回答回答于

我就是这么做的

static int[] counts = new int[26]; {{
       Arrays.fill(counts, 0);  //Fill the array with zeroes
}}
static String alph = "abcdefghijklmnopqrstuvwxyz";     

    public static void main(String[]args) throws IOException {
        Scanner input = new Scanner(new File("input.txt"));
        PrintStream output = new PrintStream(new File("output.txt"));
        while (input.hasNextLine()) {
            String fjala = input.next();
            countLetters(fjala);
        }
        for(int i =0; i < counts.length; i++) {
            output.println(alph.charAt(i) + " : " + counts[i]);
        }
    }
    public static void countLetters(String text) {

        for (int i = 0; i < alph.length(); i++) {
            for (int j = 0; j < text.length(); j++) {
                if (alph.charAt(i) == text.charAt(j)) {
                    counts[i]++;
                }
            }
        }
    }

逻辑:

创建一个静态int数组来跟踪每个字母发生的次数。有String所有的字母和用法charAt()把所有的字母都移开。最后,将所有对应的字母和字母计数打印到文件中。

输入文件:

aaaa
bb
cc
ddddd
eee
fff
j
ddd

输出文件:

 a : 4
 b : 2
 c : 2
 d : 8
 e : 3
 f : 3
 g : 0
 h : 0
 i : 0
 j : 1
 k : 0
 l : 0
 m : 0
 n : 0
 o : 0
 p : 0
 q : 0
 r : 0
 s : 0
 t : 0
 u : 0
 v : 0
 w : 0
 x : 0
 y : 0
 z : 0
用户回答回答于

创建一个简单的字符串函数,如下所示:

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;
}

扫码关注云+社区

领取腾讯云代金券