Please create a method in java, which accepts a string as a parameter, and print
ID: 3629414 • Letter: P
Question
Please create a method in java, which accepts a string as a parameter, and print the longest consecutive running character in the string.example: if a string is : aabbaaaaaassssssbbbbbbbbbbbbbbbbb
it should print: b- 17 times.
Explanation / Answer
create a class, and put the below method in it, and call this method from the main method, passing a string in it. It will print the longest consecutive running character. public void countCharacters(String str){ try { int length =str.length(); System.out.println("String length "+length); int a=0; int count=0; char characterTemp=0; Map charMap = new LinkedHashMap(); while(a0 && characterTemp==character) || a==length-1 ){ count++; if(a==length-1){ Character chr = character; if(!charMap.containsKey(chr)){ List cuntList = new LinkedList(); cuntList.add(count); charMap.put(chr, cuntList); }else{ List cntList = charMap.get(chr); cntList.add(count); } } } else if((a>0 && characterTemp!=character)){ Character chr = characterTemp; if(!charMap.containsKey(chr)){ List countSet = new LinkedList(); countSet.add(count); charMap.put(chr, countSet); count=0; count++; } else{ List countSet = charMap.get(chr); countSet.add(count); charMap.put(chr, countSet); count=0; count++; } } characterTemp=str.charAt(a); a++; } Iterator entrySetItr = charMap.entrySet().iterator(); int maxtimes=0; String maxRunningCharacter=""; while(entrySetItr.hasNext()){ Map.Entry entry = entrySetItr.next(); char charr = entry.getKey(); //System.out.println("---------------------------- character >>>>>>>>> : "+charr+" "); Iterator countSetItr = entry.getValue().iterator(); while(countSetItr.hasNext()){ int noOfOccurences = countSetItr.next(); if(noOfOccurences>maxtimes){ maxtimes=noOfOccurences; maxRunningCharacter=String.valueOf(charr); } else if(noOfOccurences==maxtimes){ maxRunningCharacter+=","+String.valueOf(charr);; } //System.out.println("Counts for "+entry.getKey()+" are-->>> "+noOfOccurences); } } System.out.println("Longest Running Character in the given String "+str+" is: "+maxRunningCharacter+" and it comes "+maxtimes+" times"); } catch (Exception e) { e.printStackTrace(); } }Related Questions
Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.