Ignorieren von Leerzeichen bei der Auszählung String Token

Arbeite ich an einer Hausaufgabe für eine Klasse und ich habe das gelöst haben fast alle, aber bin kämpfen mit einem Teil.

Für den Auftrag, wir sollen ein Programm schreiben, dass zählt die Häufigkeit des Auftretens der Buchstaben in einem gegebenen string und dann drucken Sie eine Karte von Ihnen an der Konsole. Ich habe das Programm geschrieben und es funktioniert fast richtig, aber ich Schaffe es nicht, die anzeigen zu ignorieren whitespace. Es scheint zwei verschiedene Arten von whitespace-Zeichen als auch, eine, ist der Raum zwischen den Wörtern und anderen, dass ich nicht herausfinden.

Ich habe versucht myString.replaceAll(" ", ""); und myString.trim(); zu versuchen und zu beseitigen die Leerzeichen vor Auszählung der Häufigkeit der Buchstaben, aber es zählt immer noch beide Arten von whitespace jedes mal.

Jede Einsicht oder Hilfe ist willkommen. Ich konnte es drehen, wie in diesem, aber ich weiß nicht wie halb assing Projekte. Hier ist der code:

import java.util.*;

public class LetterFrequency {
   public static void main( String[] args ) {

      Map< String, Integer > myMap = new HashMap< String, Integer >(); 

      createMap( myMap ); 
      displayMap( myMap );
   } 


   private static void createMap( Map< String, Integer > map ) {
      Scanner scanner = new Scanner( System.in ); 
      System.out.println( "Enter a string:" ); 
      String input = scanner.nextLine();

      System.out.println("String: "+input);

      String[] tokens = input.split("");


      for ( String token : tokens ) {
         String letter = token.toLowerCase();


         if ( map.containsKey( letter ) ) {
            int count = map.get( letter ); 
            map.put( letter, count + 1 );
         }
         else 
            map.put( letter, 1 );
      } 
   } 


   private static void displayMap( Map< String, Integer > map ) {      
      Set< String > keys = map.keySet(); 


      TreeSet< String > sortedKeys = new TreeSet< String >( keys );

      System.out.println( "\nMap contains:\nKey\t\tValue" );


      for ( String key : sortedKeys )
         System.out.printf( "%-10s%10s\n", key, map.get( key ) );

      System.out.printf( 
         "\nsize: %d\nisEmpty: %b\n", map.size(), map.isEmpty() );
   }
}
  • kannst den code sehen, der versucht zu ersetzen, Leerzeichen in der Zeichenfolge
InformationsquelleAutor Speakr | 2012-04-15
Schreibe einen Kommentar