Hallo zusammen,
ich möchte ein Histogramm für den häufigsten Buchstaben aus eiinem String erstellen, allerdings gibt mir die Konsole nicht den zu erwartenden Wert aus, vermutlich gibt es einen Verschiebungsfehler zwischen Index und ASCII-Wert.
Hat jmd eine Idee, wie ich das anpassen kann?
ich möchte ein Histogramm für den häufigsten Buchstaben aus eiinem String erstellen, allerdings gibt mir die Konsole nicht den zu erwartenden Wert aus, vermutlich gibt es einen Verschiebungsfehler zwischen Index und ASCII-Wert.
Hat jmd eine Idee, wie ich das anpassen kann?
Java:
String test="@@@@@@@@@@@WWaaaaffwefgthtw4";
char significantLetter=getSignificantLetter(test);
}
public static int getIndexOfMaximumEntry(int[] values){
int maxIndex=values[0];
for(int i=1; i<values.length;i++){
if(values[i]>maxIndex){
maxIndex=values[i];
}
}
return maxIndex;
}
public static char getSignificantLetter(String text){
char significantLetter= ' ';
int [] histogram=new int [127];
text.toLowerCase();
for(int g=0; g<text.length(); g++ ){
histogram[text.charAt(g)]++;
}
significantLetter=(char) getIndexOfMaximumEntry(histogram);
int quantity = getIndexOfMaximumEntry(histogram);
int quota = (quantity/text.length())*100;
System.out.print("Most significant letter: " +significantLetter+ "\n");
System.out.print("Quantity: "+quantity+" times ("+quota+" % of whole text).\n");
for(int z=0; z<histogram.length; z++){
System.out.print(histogram[z]);
}
return significantLetter;
}
}