我正在尝试编写一个读取文本字符串的程序,并在此文本及其频率中打印所有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("]",""));