J'essaie d'écrire un programme qui lit une chaîne de texte et imprime tous les digrammes de ce texte et leurs fréquences.Arrayliste de sortie Chaîne sans parenthèses ni virgules
Exemple d'entrée: park car at the parking lot
sortie correspondante: ar:3 pa:2 rk:2 at:1 ca:1 he:1 in:1 ki:1 lo:1 ng:1 ot:1 th:1
Lorsque je tente cette entrée de l'échantillon, il émet [ar:3, pa:2, rk:2, ca:1, at:1, th:1, he:1, ki:1, in:1, ng:1, lo:1, ot:1]
Comment puis-je résoudre ce problème il a coutume de crochets et des virgules?
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);
}
}
Vous devez écrire une méthode personnalisée pour ce faire. La méthode 'toString()' de 'ArrayList' est ce qui ajoute les accolades et les virgules. – Logan