2015-09-02 6 views
-5

У меня есть String, и мне нужно подсчитывать события последовательных символов строки.count вхождения последовательных символов строки

String s1="aabbcccaaa"; 

Она должна вывести выход в

a2b2c3a3 

строки s1 = "aabbcccaaa";

char c[]=s1.toCharArray(); 
StringBuffer sb=new StringBuffer(); 

LinkedHashMap<Character,Integer> map=new LinkedHashMap<Character,Integer>(); 




for(int i=0;i<c.length;i++) 
{ 
    Character c1=c[i]; 
    Integer frequency=map.get(c1); 
    map.put(c1, (frequency==null)?1:frequency+1); 

    if(map.size()>1 && c[i]!=c[i-1]) 
    { 
     sb.append(c[i-1]+""+map.get(c[i-1])); 
     map.remove(c[i-1]); 
    } 



} 
sb.append(map); 
System.out.println(sb); 
+1

Хорошо, пожалуйста, продолжайте и считайте :) –

+0

и почему именно мы должны писать весь код для вас? хотя бы попробовать сначала –

+0

спасибо .. Я попытался выполнить итерацию элементов и используемую карту, чтобы поместить ключ в качестве элемента и значение как его появление. Я не уверен, как я могу добиться подсчета, если снова появятся те же элементы. –

ответ

1

Я не знаю, как я могу достичь отсчеты, если одни и те же элементы повторялись.

Подсказка №1: Проверить текущий символ на предыдущий.

Подсказка №2: спросите себя, зачем вам нужно использовать Map?

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