如何获取数组并将所有数字转换为其他数字。 'JAVA'

How to take an array and convert all numbers to other numbers. 'JAVA'

我正在尝试在 java 中制作 GPA 计算器。一旦我的数组中有所有成绩,我想有另一个数组将所有 GPA 放入相同大小的数组中。

例如 arrayA = [90, 95, 80, 87, 100] ....

我希望能够将这些数字转换为 arrayB 并使其等于 [3.7, 4.0, 2.7, 3.3, 4.3]

这是我目前的情况:

import java.util.Scanner;
import java.util.Arrays;
/**
 Coleman Strauss
 GPA Calculator
 March 12, 2015
 */
public class GPACalculator
{
    public static void main (String[] args) 
    {
        int numClasses;
        Scanner scan = new Scanner(System.in);
        double[] myArrayGrades;
        double[] myArrayGPA;


        System.out.println("Please enter in the amount of classes you have:   ");
        numClasses = scan.nextInt();

        System.out.println("Alright so you have " + numClasses + " classes.");

        myArrayGrades = new double[numClasses];

        for (int i=0; i < numClasses; i++) {
            System.out.println("Please enter all your grades in a row!");

        }
        System.out.println(myArrayGrades);
    }
}

真的很简单。测试大小是否相同,如果相同,则进行转换。不要忘记初始化数组

if(arrayA.size() == arrayB.size()){
//do nothing
}
else{
exit; //array sizes are mismatched and will cause OutOfBounds exception
}

for(int i = 0; i < arrayA.size(); i++){
arrayB[i] = arrayA[i]*GPAConditional; /*GPAConditional is the constant conversion factor used to convert grades into GPA, ultimately defined by you*/ 
}

请注意,更改数组 A 的元素会更改数组 B 的元素!!

如果你有这样的地图

Map<Double, Double> gpas = new HashMap<>();
gpas(100d, 4d);
gpas(90d, 3.5);

等等

然后你可以循环遍历你的原始数组并从地图中检索相应的 gpa 并填充第二个数组。

int i = 0;
for(Integer grade : myArrayGrades){
myArrayGPA[i++] = map.get(grade);
}

这可能对您有所帮助。

我找到了一种方法,可以将我需要的所有值都放入数组中。我没有使用两个数组,而是立即将成绩转换为 GPA,并将它们存储到数组中,如下所示:

    import java.util.Scanner;
    import java.util.Arrays;
    /**
     Coleman Strauss
     GPA Calculator
     March 12, 2015
     */
    public class GPACalculator
    {
        public static void main (String[] args) 
        {
            int numClasses;
            Scanner scan = new Scanner(System.in);
            double[] myArrayGrades;
            double sumGPA = 0;


    System.out.println("Please enter in the amount of classes you have: ");
    numClasses = scan.nextInt();

    System.out.println("Alright so you have " + numClasses + " classes.");

    myArrayGrades = new double[numClasses];


    for (int i=0; i < numClasses; i++) {
        System.out.println("Please enter all your grades in a row!");
        myArrayGrades[i] = scan.nextDouble();

        if (myArrayGrades[i] >= 97) {
            myArrayGrades[i] = 4.3; 
        }
        else if (myArrayGrades[i] >= 93) {
            myArrayGrades[i] = 4.0;
        }
        else if (myArrayGrades[i] >= 90) {
            myArrayGrades[i] = 3.7;
        }
        else if (myArrayGrades[i] >= 87) {
            myArrayGrades[i] = 3.3;
        }
        else if (myArrayGrades[i] >= 83) {
            myArrayGrades[i] = 3.0;
        }
        else if (myArrayGrades[i] >= 80) {
            myArrayGrades[i] = 2.7;
        }
        else if (myArrayGrades[i] >= 77) {
            myArrayGrades[i] = 2.3;
        }
         else if (myArrayGrades[i] >= 73) {
            myArrayGrades[i] = 2.0;
        }
        else if (myArrayGrades[i] >= 70) {
            myArrayGrades[i] = 1.7;
        }
        else if (myArrayGrades[i] >= 67) {
            myArrayGrades[i] = 1.3;
        }
        else if (myArrayGrades[i] >= 63) {
            myArrayGrades[i] = 1.0;
        }
        else if (myArrayGrades[i] >= 60) {
            myArrayGrades[i] = .07;
        }
        else {
            myArrayGrades[i] = 0.0;
        }
    }

    System.out.println("Here are all of your GPA's for each class");
    System.out.println(Arrays.toString(myArrayGrades));

    for (int i = 0; i <= numClasses; i ++) {
        myArrayGrades[i] += sumGPA;
    }

    System.out.println("The sum of the GPA's is: " + sumGPA);

} }