2017-02-03 11 views
1
I am trying to find out the frequency of characters in string using java tree map. Everything is going fine .But extra lin of string is getting added when i am getting output for one particlar case . 


import java.awt.Menu; 
import java.util.HashMap; 
import java.util.Map; 
import java.util.Scanner; 
import java.util.TreeMap; 

public class Main { 
public static void main(String [] args) 
{ 
    Scanner s=new Scanner(System.in); 
    System.out.println("Enter the input string"); 
    String s1=s.nextLine(); 

    Map<Character,Integer> map=new TreeMap<Character,Integer>(); 

    for(int i = 0; i < s1.length(); i++){ 
     char c = s1.charAt(i); 
     Integer val = map.get(new Character(c)); 
     if(val != null){ 
     map.put(c, new Integer(val + 1)); 
     }else{ 
     map.put(c,1); 
     } 
    }   

    for(Map.Entry<Character,Integer> en:map.entrySet()){ 
     int count=en.getValue(); 
     System.out.printf("%c : ",en.getKey()); 
     for(int i=0;i<count;i++) 
     System.out.printf("*"); 

     System.out.printf("\n"); 
    } 


    } 
} 

для ввода: Коли является человеком матчаПолучение ошибки при нахождении частоты символов в строке, используя карту дерева в Java

это должно быть выход K: * : с ** с : * е: ** F: * ч: **** я: ** л: * м: ** п: * о: ** с: * т: ** *

, но я получаю это: : ****** K: * : с ** с: * е ** е: * ч: **** я: * * л: * м **: п * о: ** s: * т: ***

Как это исправить.

ответ

1

В введенной строке имеется 6 пробелов. Вот почему вы получаете этот результат. Пробел - тоже символ.

Если вы хотите удалить этот пробельные, вы можете обновить свой код, как это:

String s1=s.nextLine().replaceAll(" ",""); 
+0

свои работы !! Мужчина-мужчина :-) –

 Смежные вопросы

  • Нет связанных вопросов^_^