まあ、評価している文字に応じて、毎回0が3または5の倍数になるため、モジュラス演算子は役に立ちません(それがあなたが説明しようとしているものである場合、間違っていたらごめんなさい)。
最も簡単な方法は、文字列をスキャンして値を追加することだと思います。
3 番目の A に遭遇したときは、2 の代わりに 1 を追加します (4 を引いてから 5 を追加する必要があるため)。同様に C の場合、4 番目の C に遭遇したときに、1 の代わりに 0 を追加するだけです。
A と C のインスタンスを保持するには 2 つの追加の変数が必要です。はい、モジュラス演算子を使用して、場合に応じて 1 または 0 を追加する必要がある倍数に到達したかどうかを知ることができます。
これが少し役立つことを願っています。
編集:ここでは、簡単な実装を行いました。本当に必要な場合は、自由に最適化してください ;)
String value = "ABCCBAACCA";
int numA =0;
int numC =0;
int endResult = 0;
for (int x = 0; x < value.length(); x++)
{
if (value.charAt(x) =='A')
{
numA = numA +1;
endResult = endResult + ((numA%3 == 0)?1:2);
}
else if (value.charAt(x) =='B')
{
endResult = endResult +3;
}
else if (value.charAt(x) =='C')
{
numC = numC +1;
endResult = endResult + ((numC%4 == 0)?0:1);
}
}
System.out.println(endResult); //16 as expected