我有一个非常令人沮丧的时间试图从我的程序中获取错误。基本上我的程序需要一个字符串,并读取每个键盘字符在字符串中出现的次数,然后显示它。错误读取一个字符在字符串中出现多少次
我正在运行的主循环是读取字符,但不会贯穿,即使条件满足。
你有什么想法可能是错的?
import java.util.Scanner;
public class mainClass {
public static void main (String[] args){
Scanner myScanner = new Scanner(System.in);
System.out.println("Please enter array");
String inputString = myScanner.nextLine(); //input array entered
myScanner.close();
char[] charTypes = {a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9,`,~,!,@,#,$,%,^,&,*,(,),-,_,=,+,[,{,],},;,:};
char[] charArray = new char[inputString.length()];
for (int i =0; i<=inputString.length()-1;i++){ //conversion of string to character array
charArray[i]= inputString.charAt(i);
System.out.print(" "+ charArray[i] +" ");
}
int i1=0;
int i2=0;
int charCounter[] = new int[84]; //This array holds the amount of times each corresponding character occurs in a string
while (i1<=charArray.length-1){
if(charArray[i1]==charTypes[i2] && i22<83 && i1<charArray.length-1){
charCounter[i22]++;
i1++;
i22=0;
}else if(charArray[i1] != charTypes[i2] && i22<83 && i1<charArray.length-1){
i22++;
}else{System.out.println("Not even running through the if's");//introduced as as tests to see if the conditions of the two if statements were being met}
}
for(int i = 0; i<=91;i++){ // prints out how many times each character occurs
System.out.println(charTypes[i]+" : "+ charCounter[i]);
}
}
}
看看'String#toCharArray()'。 –
然后学习如何使用调试器。 –
你在哪里做检查如“我<= inputString.length() - 1” - 只是说“我