【发布时间】:2019-04-05 05:39:53
【问题描述】:
我有一个名为s="abcac" 的字符串,它被无限重复了很多次。这意味着s 看起来像:s="abcacabcacabcacabcacabcac...." 和n 代表s 的子字符串。
例如,如果s="monday"和n="10",我们考虑的子字符串将是finalString="mondaymond",因为无限字符串将是"mondaymondaymondaymonday...",而s的前10个字符是"mondaymond"
我正在尝试计算finalString 中字母“a”的出现次数。此代码运行正常,但是当 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);
}
【问题讨论】:
标签: java arrays string for-loop character