I want to write a simple class to process Strings (may be very long strings up to 1mil characters in it). String will basically consists of two characters \"a\" and \"b\" that
You should definitely not using regexp for this problem: generally speaking, regexp is not good when you need to count anything. You cannot even write a regexp to check if brackets in an expression are balanced.
For this problem a simple counter will be sufficient: increment on a
, decrement on b
, check for zero in the end to know the answer to your problem.
boolean check(String s) {
int count = 0;
for (int i = 0 ; i != s.length() ; i++) {
if (s.charAt(i) == 'a') {
count++;
} else { /* it is b */
count--;
}
}
return count == 0;
}