Я хочу написать простой класс для обработки строк (в нем могут быть очень длинные строки длиной до 1 миллиона символов).Строка будет в основном состоит из двух символов «a» и «b», которые могут смешиваться друг с другом.Если число a равно числу b, то приложение скажет, что все в порядке, иначе NOK.Интересно, как сделать это наиболее эффективно.Я думал об использовании регулярных выражений для разделения String, а затем подсчитывал случаи появления a и b, но, возможно, кто-то знает лучший способ сделать это.Я относительно новичок в регулярных выражениях, поэтому, пожалуйста, дайте мне знать, если будут какие-либо ошибки.Это моя ранняя попытка.
public class Typo {
public static void main(String[] args){
String ver = "";
int na = 0;
int nb = 0;
String regex = ("\\w.+");
Pattern p = Pattern.compile(regex);
String text = "ababababbaba";
if (text.length() == 0){
ver = "OK";
}
else if (text.length() == 1){
ver = "NOK";
}
else if ((text.length() % 2) == 1){
ver = "NOK";
}
else if ((text.length() % 2) == 0){
//check number of a and b and if it equals return OK otherwise NOK
Matcher m1 = p.matcher("a");
while(m1.find()){
na = na + 1;
}
Matcher m2 = p.matcher("b");
while(m2.find()){
nb = nb + 1;
}
if (na == nb){
ver = "OK";
}
else
ver = "NOK";
}
System.out.println(ver);
}
}