В рамках моей реализации мне нужно как можно эффективнее выполнить итерацию по символам. Вот часть моего исходного кода, который я написал:Эффективная итерация Java по char
public int normalize(char s[], int len) {
for (int i = 0; i < len; i++) {
switch (s[i]) {
//numbers
case EN_D0:
case AR_D0:
s[i]= FA_D0;
break;
case EN_D1:
case AR_D1:
s[i]= FA_D1;
break;
case EN_D2:
case AR_D2:
s[i]= FA_D2;
break;
case EN_D3:
case AR_D3:
s[i]= FA_D3;
break;
case EN_D4:
case AR_D4:
s[i]= FA_D4;
break;
case EN_D5:
case AR_D5:
s[i]= FA_D5;
break;
case EN_D6:
case AR_D6:
s[i]= FA_D6;
break;
case EN_D7:
case AR_D7:
s[i]= FA_D7;
break;
case EN_D8:
case AR_D8:
s[i]= FA_D8;
break;
case EN_D9:
case AR_D9:
s[i]= FA_D9;
break;
//Symboles
case EN_QUESTION_MARK:
s[i]=FA_QUESTION_MARK;
break;
case EN_PERCENT_SIGN:
s[i]=FA_PERCENT_SIGN;
break;
case EN_DASH1:
case EN_DASH2:
case EN_DASH3:
case EN_DASH4:
s[i]=FA_DASH;
break;
case HAMZA_ABOVE:
len = delete(s, i, len);
i--;
break;
default:
break;
}
}
return len;
Каков наиболее эффективный способ выполнения такого процесса? Пожалуйста, подумайте, что я не поставил здесь все условия, потому что это было около 600 различных условий. Помимо того, что эта часть кода должна быть запущена для огромных документов, которые имеют огромное количество символов. Поэтому эффективность действительно имеет значение.
Вы будете иметь много условных проверок, но это кажется неизбежным. Я не думаю, что ты сделаешь лучше, чем у тебя. – egracer