У меня есть следующая строка с именем s="abcac"
, которая повторяется бесконечно много раз. Это означает, что s
будет выглядеть следующим образом: s="abcacabcacabcacabcacabcac...."
и n
представляет подстроку s
.
Например, если s="monday"
и n="10"
, подстрока, которую мы рассматриваем, будет finalString="mondaymond"
, поскольку бесконечная строка будет "mondaymondaymondaymonday..."
, а первые 10 символов s
будут "mondaymond"
Я пытаюсь посчитать вхождения буквы «а» в finalString
. Этот код работает правильно, однако, когда n> 1000000, программа не будет работать.
Кроме того, если я изменю n
с int
на long
, цикл for не будет работать в этом случае.
Каково было бы решение этой проблемы?
public static void main(String[] args){
String s="abcac";
int aCount=0;
int n=1000;
int j=0;
char[] sCharArray=s.toCharArray();
char[] finalString = new char[n];
for(int i=0;i<n;i++){
if(j==s.length())
j=0;
finalString[i]=sCharArray[j];
j++;
}
for(int i=0; i<n;i++){
if(finalString[i]=='a')
aCount++;
}
System.out.println(aCount);
}