Java 如何通过数组判断字符串是否包含特定数量的字符?
我的一个家庭作业问题是 定义一个名为countAll的方法,该方法接受字符串作为参数。该方法必须Java 如何通过数组判断字符串是否包含特定数量的字符?,java,Java,我的一个家庭作业问题是 定义一个名为countAll的方法,该方法接受字符串作为参数。该方法必须 返回一个大小为27的int数组,使得位置0中的值是数的计数 输入中的“a”和“a”字符,位置1中的值是“b”和“a”字符数的计数 输入中的“B”字符,…位置25中的值是输入中“z”和“z”字符数的计数,位置26中的值是所有非字母的计数 输入中的字符 我试着用计算机解决它 public static int[] countAll(String input){ int[] ints =
返回一个大小为27的int数组,使得位置0中的值是数的计数
输入中的“a”和“a”字符,位置1中的值是“b”和“a”字符数的计数 输入中的“B”字符,…位置25中的值是输入中“z”和“z”字符数的计数,位置26中的值是所有非字母的计数
输入中的字符 我试着用计算机解决它
public static int[] countAll(String input){
int[] ints = new int[27];
for(int i=0;i<input.length();i++){
if(input.charAt(i)=='a'||input.charAt(i)=='A'){
ints[0]+=1;
}
if(input.charAt(i)=='B'||input.charAt(i)=='b'){
ints[1]++;
}
if(input.charAt(i)=='c'||input.charAt(i)=='C'){
ints[2]++;
}
if(input.charAt(i)=='d'||input.charAt(i)=='D'){
ints[3]++;
}
if(input.charAt(i)=='e'||input.charAt(i)=='E'){
ints[4]++;
}
if(input.charAt(i)=='f'||input.charAt(i)=='F'){
ints[5]++;
}
if(input.charAt(i)=='g'||input.charAt(i)=='G'){
ints[6]++;
}
if(input.charAt(i)=='h'||input.charAt(i)=='H'){
ints[7]++;
}
if(input.charAt(i)=='I'||input.charAt(i)=='i'){
ints[8]++;
}
if(input.charAt(i)=='j'||input.charAt(i)=='J'){
ints[9]++;
}
if(input.charAt(i)=='K'||input.charAt(i)=='k'){
ints[10]++;
}
if(input.charAt(i)=='l'||input.charAt(i)=='L'){
ints[11]++;
}
if(input.charAt(i)=='m'||input.charAt(i)=='M'){
ints[12]++;
}
if(input.charAt(i)=='n'||input.charAt(i)=='N'){
ints[13]++;
}
if(input.charAt(i)=='o'||input.charAt(i)=='O'){
ints[14]++;
}
if(input.charAt(i)=='p'||input.charAt(i)=='P'){
ints[15]++;
}
if(input.charAt(i)=='q'||input.charAt(i)=='Q'){
ints[16]++;
}
if(input.charAt(i)=='r'||input.charAt(i)=='R'){
ints[17]++;
}
if(input.charAt(i)=='s'||input.charAt(i)=='S'){
ints[18]++;
}
if(input.charAt(i)=='T'||input.charAt(i)=='t'){
ints[19]++;
}
if(input.charAt(i)=='U'||input.charAt(i)=='u'){
ints[20]++;
}
if(input.charAt(i)=='V'||input.charAt(i)=='v'){
ints[21]++;
}
if(input.charAt(i)=='W'||input.charAt(i)=='w'){
ints[22]++;
}
if(input.charAt(i)=='x'||input.charAt(i)=='X'){
ints[23]++;
}
if(input.charAt(i)=='y'||input.charAt(i)=='Y'){
ints[24]++;
}
if(input.charAt(i)=='z'||input.charAt(i)=='Z'){
ints[25]++;
}
}
return ints;
}
}
public static int[]countAll(字符串输入){
int[]ints=新的int[27];
对于(inti=0;i,因为这显然是一个家庭作业,所以任何人给你一个镀银的答案都不会有帮助。但下面是一些关于如何优化的见解
在Java中,一个字符可以是一个数值。例如str.charAt(0)-'a'
将返回一个数值,其中0
是a
,25
是z
(注意:a>与有区别
和'a'
;一个是字符串
,另一个是字符
)您还需要str.toLowerCase()
您的字符串,如'a'!='a'
)
然后,您只需循环遍历字符串的所有字符,获取字符值(如数组索引)并递增数组。如果字符值小于0
或大于25
,则字符值为26
提示:for(char c:input.tocharray()){…}
使用char值的数字表示来简化。用谷歌搜索任何字符来查找这些值
a-z(小写)是97-122
因此,首先将字符串转换为所有小写,然后,例如:
if(charVal >= 97 && charVal <= 122){
ints[charVal - 97]++;
// The -97 gives you an array index of 0 through 25.
}
else {
// Otherwise it's not a-z.
ints[26]++;
}
如果(charVal>=97&&charVal您的任务似乎在讨论将每个字母的出现次数映射到数组的某个索引,可能会有所帮助?这是家庭作业问题的正确答案。+1