输出阵列列表字符串,无括号和逗号



我正在尝试编写一个读取文本字符串的程序,并在此文本及其频率中打印所有digrams。

输入的示例: park car at the parking lot

相应的输出:ar:3 pa:2 rk:2 at:1 ca:1 he:1 in:1 ki:1 lo:1 ng:1 ot:1 th:1

当我尝试此示例输入时,它会输出[ar:3, pa:2, rk:2, ca:1, at:1, th:1, he:1, ki:1, in:1, ng:1, lo:1, ot:1]

我该如何修复此问题,以使其不会有括号和逗号?

public class Digrams {
public static void main(String args[]) {
    Scanner scan = new Scanner(System.in);
    String str = scan.nextLine();
    ArrayList<String> repetition = new ArrayList<String>();
    ArrayList<String> digrams = new ArrayList<String>();
    String digram;
    for (int i = 0; i < str.length() - 1; i++) {
        digram = str.substring(i, i + 2);
        if (repetition.contains(digram) || digram.contains(" ") || digram.length() < 2) {
            continue;
        }
        int occurances = (str.length() - str.replace(digram, "").length()) / 2;
        digrams.add(digram + ":" + occurances);
        repetition.add(digram);
    }
    Collections.sort(digrams, (s1, s2) -> s2.substring(3, 4).compareTo(s1.substring(3, 4)));
    System.out.println(digrams);
  }
}

不是最有效的解决方案,但它将完成工作。

String result = digrams.toString();
System.out.println(result.replaceAll(",","").replace("[","").replace("]",""));

最新更新