Java字符数组

Java字符数组,java,arrays,char,Java,Arrays,Char,我必须选择以下目标之一: //一,。将正确答案的数量平行排列。发送方法 //答案和答案。返回包含//正确数字的填充并行数组 正确=正确答案(答案、答案键) //二,。制作一个包含学生字母等级的平行数组。发送正确的 //并返回并行数组 等级=getGrade(正确) //三,。数一数每个年级有多少人 numOfEach=计数(等级) 我决定选择最后一个“//3”。数一数每个年级有多少人 numOfEach=计数(等级);” 我有点困了,到目前为止我想出了这个: public static void

我必须选择以下目标之一:

//一,。将正确答案的数量平行排列。发送方法 //答案和答案。返回包含//正确数字的填充并行数组

正确=正确答案(答案、答案键)

//二,。制作一个包含学生字母等级的平行数组。发送正确的
//并返回并行数组

等级=getGrade(正确)

//三,。数一数每个年级有多少人

numOfEach=计数(等级)

我决定选择最后一个“//3”。数一数每个年级有多少人

numOfEach=计数(等级);”

我有点困了,到目前为止我想出了这个:

public static void count(char[] grade){

int numofa = 0, numofb = 0, numofc = 0, numofd = 0, numoff = 0;

for (int i = 0; i < grade.length; i++){
    if (grade[i] == 'A'){
        numofa++;
    }else if (grade[i] == 'B'){
    numofb++;
    }else if (grade[i] == 'C'){
        numofc++;
    }else if (grade[i] == 'D'){
        numofd++;
    }else if (grade[i] == 'F'){
        numoff++;
    }   
}

} 
公共静态无效计数(字符[]级){
int numofa=0,numofb=0,numofc=0,numofd=0,numoff=0;
对于(int i=0;i
但是,我不知道如何用我分析的数据(每个字母等级的数量)填充numOfEach char数组,而不是

public static void count(char[] grade)  {
   int numofa = 0, numofb = 0, numofc = 0, numofd = 0, numoff = 0;

   for (int i = 0; i < grade.length; i++){
      if (grade[i] == 'A'){
         numofa++;
      }else if (grade[i] == 'B'){
      numofb++;
      }else if (grade[i] == 'C'){
         numofc++;
      }else if (grade[i] == 'D'){
         numofd++;
      }else if (grade[i] == 'F'){
         numoff++;
      }   
   }
}
正如您在下面的示例中所看到的,字符
1
的原始数值是而不是一,因此我不建议使用char数组返回函数

/**
   <P>{@code java RawNumericValueOfChar}</P>
 **/
public class RawNumericValueOfChar  {
   public static final void main(String[] ignored)  {
      int intValueOfCharOne = '1';
      int intValueOfCharALower = 'a';
      int intValueOfCharAUpper = 'A';

      System.out.println("intValueOfCharOne=" + intValueOfCharOne);
      System.out.println("intValueOfCharALower=" + intValueOfCharALower);
      System.out.println("intValueOfCharAUpper=" + intValueOfCharAUpper);

      int intValueOfCharOneInc = ((int)'1') + 1;
      int intValueOfCharALowerInc = ((int)'a') + 1;
      int intValueOfCharAUpperInc = ((int)'A') + 1;

      System.out.println("intValueOfCharOneInc=" + intValueOfCharOneInc);
      System.out.println("intValueOfCharALowerInc=" + intValueOfCharALowerInc);
      System.out.println("intValueOfCharAUpperInc=" + intValueOfCharAUpperInc);

   }
}
以下是一些可能有用的信息:


首先,numOfEach应该是int数组,而不是char数组

您可以将计数函数编写为:

public static void count(char[] grade,int []count)//changed
{

int numofa = 0, numofb = 0, numofc = 0, numofd = 0, numoff = 0;

for (int i = 0; i < grade.length; i++){
    if (grade[i] == 'A'){
        numofa++;
    }else if (grade[i] == 'B'){
    numofb++;
    }else if (grade[i] == 'C'){
        numofc++;
    }else if (grade[i] == 'D'){
        numofd++;
    }else if (grade[i] == 'F'){
        numoff++;
    }   

}

//changed
count[0]=numofa;
count[1]=numofb;
count[2]=numofc;
count[3]=numofd;
count[4]=numoff;
} 

这听起来不错,但是,数组必须是一个字符数组(如指定的)我不知道如何在字符数组中存储内容。这似乎是一个非常有效的解决方案,但是,我可以传递的唯一参数是“grade”,它必须是“numOIfEach=count(grade)”为此,可以将count声明为本地数组并返回它
public static char[] count(char[] grade)  {
   char[] numOfEachAsChars = new char[5];  //5: a, b, c, d, f
   int idxA = 0;
   int idxB = 1;
   int idxC = 2;
   int idxD = 3;
   int idxF = 4;

   for (int i = 0; i < grade.length; i++){
      if (grade[i] == 'A'){
         numOfEachAsChars[idxA]++;
      }else if (grade[i] == 'B'){
         numOfEachAsChars[idxB]++;
      }else if (grade[i] == 'C'){
         numOfEachAsChars[idxC]++;
      }else if (grade[i] == 'D'){
         numOfEachAsChars[idxD]++;
      }else if (grade[i] == 'F'){
         numOfEachAsChars[idxF]++;
      }   
   }
   return  numOfEachAsChars;
}
/**
   <P>{@code java RawNumericValueOfChar}</P>
 **/
public class RawNumericValueOfChar  {
   public static final void main(String[] ignored)  {
      int intValueOfCharOne = '1';
      int intValueOfCharALower = 'a';
      int intValueOfCharAUpper = 'A';

      System.out.println("intValueOfCharOne=" + intValueOfCharOne);
      System.out.println("intValueOfCharALower=" + intValueOfCharALower);
      System.out.println("intValueOfCharAUpper=" + intValueOfCharAUpper);

      int intValueOfCharOneInc = ((int)'1') + 1;
      int intValueOfCharALowerInc = ((int)'a') + 1;
      int intValueOfCharAUpperInc = ((int)'A') + 1;

      System.out.println("intValueOfCharOneInc=" + intValueOfCharOneInc);
      System.out.println("intValueOfCharALowerInc=" + intValueOfCharALowerInc);
      System.out.println("intValueOfCharAUpperInc=" + intValueOfCharAUpperInc);

   }
}
[C:\java_code\]java RawNumericValueOfChar
intValueOfCharOne=49
intValueOfCharALower=97
intValueOfCharAUpper=65
intValueOfCharOneInc=50
intValueOfCharALowerInc=98
intValueOfCharAUpperInc=66
public static void count(char[] grade,int []count)//changed
{

int numofa = 0, numofb = 0, numofc = 0, numofd = 0, numoff = 0;

for (int i = 0; i < grade.length; i++){
    if (grade[i] == 'A'){
        numofa++;
    }else if (grade[i] == 'B'){
    numofb++;
    }else if (grade[i] == 'C'){
        numofc++;
    }else if (grade[i] == 'D'){
        numofd++;
    }else if (grade[i] == 'F'){
        numoff++;
    }   

}

//changed
count[0]=numofa;
count[1]=numofb;
count[2]=numofc;
count[3]=numofd;
count[4]=numoff;
} 
count(grade,numOfEach);