This algorithm will work perfectly fine for what you want to develop: Before that, let me make it clear that you mentioned a situation where you want to check repeatitions of _2 different characters_ same number of times, for that you have to run a `for loop` in `reverse` to identify the _2nd character_. So `if` the _2nd character_ is not same as the _first one identified_, and also if it's number of repeatitions are the same, you `print` _both the characters_ or `else`, just `print` the _single character_ you find at the first `for loop` because _both the characters_ are going to be same. Run a reverse `for loop` like this given below in your `length` function after the first `for loop`. Make sure to reset the variables that you are going to use again. This will identify another position of the variable that is repeating maximum times. But since a function can only return 1 value, use this reverse algorithm in a different function and have what you want to achieve. for(int i=size-1;i>0;i--){ if(A[i].equals(A[i-1])){ current++; } else{ if(current>res){ index=i-current; res=current; } current=1; } } Incase you need more reference, here is my own code which works exactly as you want but **don't use this algorithm** and implement it directly as it will limit your thinking of generating new algorithms your way.(Migrated from the same question you asked on [this link](http://stackoverflow.com/questions/32412403/java-find-the-longest-sequential-same-character-array/32412898#32412898) at StackOverflow. public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter String 1: "); String A1 = sc.nextLine(); MaxRepeat(A1); } public static void MaxRepeat(String A) { int count = 1; int max1 = 1; char mostrepeated1 = ' '; for(int i = 0; i < A.length()-1;i++) { char number = A.charAt(i); if(number == A.charAt(i+1)) { count++; if(count>max1) { max1 = count; mostrepeated1 = number; } continue; } count = 1; } count = 1; int max2 = 1; char mostrepeated2 = ' '; for(int i = A.length()-1; i>0; i--) { char number = A.charAt(i); if(number == A.charAt(i-1)) { count++; if(count>max2) { max2 = count; mostrepeated2 = number; } continue; } count = 1; } if((max1==max2) && (mostrepeated1==mostrepeated2)) { System.out.println("Most Consecutively repeated character is: " + mostrepeated1 + " and is repeated " + max1 + " times."); } else if((max1==max2) && (mostrepeated1!=mostrepeated2)) { System.out.println("Most continously repeated characters are: " + mostrepeated1 + " and " + mostrepeated2 + " and they are repeated " + max1 + " times"); } }