[英]How do I return a created Array in Java?
在这个程序中,我应该计算字母“A”、“B”和“C”在字符串中出现的次数,并将其作为数组返回。 输入是 ABBACCCCAC,我应该得到 [3, 2, 5] 的 output 但我得到 [1, 1, 2, 2, 1, 2, 3, 4, 3, 5]
import java.util.Arrays;
public class HelloWorld{
public static void main(String []args){
String str = "ABBACCCCAC";
int[] arr = new int[str.length()];
int acount = 0, bcount = 0, ccount = 0;
for(int i =0; i<str.length();i++){
if(str.charAt(i) == 'A'){
acount++;
arr[i] = acount;
}
else if(str.charAt(i) == 'B'){
bcount++;
arr[i] = bcount;
}
else if(str.charAt(i) == 'C'){
ccount++;
arr[i] = ccount;
}
}
System.out.print(Arrays.toString(arr));
}
}
你很亲密。 只需将您的数组大小更改为 3 并指示为 0,1 和 2。
String str = "ABBACCCCAC";
int[] arr = new int[3];
int acount = 0, bcount = 0, ccount = 0;
for(int i =0; i<str.length();i++){
if(str.charAt(i) == 'A'){
acount++;
arr[0] = acount;
}
else if(str.charAt(i) == 'B'){
bcount++;
arr[1] = bcount;
}
else if(str.charAt(i) == 'C'){
ccount++;
arr[2] = ccount;
}
}
System.out.print(Arrays.toString(arr));
您也可以直接增加数组位置。
arr[0]++; // like this.
现在,您在计数的每一步都将计数分配给数组,而您应该在计数结束时完成此操作。 另外,请注意,您创建了一个与字符串长度相同的数组,而不是预期的3
。
您应该使用数组创建表达式将数组的创建移到最后:
String str = "ABBACCCCAC";
int acount = 0, bcount = 0, ccount = 0;
for(int i =0; i<str.length();i++){
if(str.charAt(i) == 'A'){
acount++;
}
else if(str.charAt(i) == 'B'){
bcount++;
}
else if(str.charAt(i) == 'C'){
ccount++;
}
}
int[] arr = new int[] { acount, bcount, ccount }; // <--- here!
System.out.print(Arrays.toString(arr));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.