在Java中处理数组内部的单个数字

时间:2013-12-01 02:28:56

标签: java arrays double

处理一些功课,我想让我的代码更精确,我在数组中有一组值,我需要将它们转换为一组不同的数字,同时仍然在数组中。由于这是我的作业,我不想实际发布我正在做的事情,所以我会发一个例子,不希望任何人为我做我的工作!

public class Example{
    public Example(){
        double rainfall [] = {1.07, 3.25, 4.51, 2.32, 8.28}; //in Inches
        System.out.print("Enter i for Inches or c for Centimeters ");
        String scale = in.next();

        if(scale.equalsIgnoreCase("C")){

            for (double i : rainfall){
                rainSum += i;
            }//End for


        // Here is where I am lost on what to do in my current program I have it 
        // to where it adds up all the numbers as inches and then converts them into
        // centimeters, however I need to display every number in centimeters, so I
        // cannot do it that way.
        }//End if
    }
}

4 个答案:

答案 0 :(得分:0)

您将所有数字相加并将该总和(英寸)转换为厘米乘以2.54。数组中的值仍以英寸为单位,因此要以厘米为单位打印所有值,只需遍历数组并打印值乘以2.54即可。或者,如果您需要转换后的值和原始值,只需复制数组,但将每个条目乘以2.54。

答案 1 :(得分:0)

如果需要保留原始值,则需要创建一个新数组并将转换后的值复制到新数组中的相应位置。

如果您不需要保留原始值,请使用数组元素赋值,例如:

 private static final double CENTIMETERS_PER_INCH = 2.54d;
 ...
 a[1] = a[i] * CENTIMETERS_PER_INCH;

在循环中计算转换后的值。常量定义将出现在类级别,而不是循环中。

答案 2 :(得分:0)

所以我想你有5天的降雨量统计数据。它们以英寸提供,您需要输出2件事(根据用户选择' C'):

(1)。 cms的总降雨量。

(2)。每日降雨量统计数据以厘米为单位。

(3)。您需要在Inches中保留原始数组时执行此操作。

所以我建议您使用以下代码:

(1)。     在考虑这样做时你是非常正确的。添加所有元素并将它们乘以2.54     在cms中得到它的等价物。 (2)。     调用方法显示如下:

void display(double[] a) // This would print individual rainfall stats in cms. 
{
for(int i=0;i<a.length;i++)
 {
  System.out.println(a[i]*2.54);//Modify formatting as per your requirements
 }
}

(3)。     这些仍然是原样。

方法-2: 如果程序的预期输入为&#39; C&#39;更多,然后创建另一个数组 实际上将初始英寸数组转换为cms数组。 所以,现在你有两个数组:

rainfallInches []&amp; rainfallCms []

您可以按如下方式使用它们:

for(int i=0;i<rainfallInches.length;i++)
{
 rainfallCms[i] = rainfallInches[i]*2.54; 
}// This creates new cms array

希望这有帮助

答案 3 :(得分:0)

public class Example{

public interface Constants{
    /**
     * Centimer to inch
     */
    static final double CENTIMETER_TO_INCH = 0.393701;

    /**
     * Centimer to inch
     */
    static final double INCH_TO_CENTIMETER = 2.54;
}

public double[] convertToCentimeter(double[] rainfallInInches){
    int length = rainfallInInches.length;
    double[] rainfallInCentimeters = new double[length];
    for( int i = 0; i < length; i++ ){
        rainfallInCentimeters[i] = rainfallInInches[i] * Constants.INCH_TO_CENTIMETER;
    }

    return rainfallInCentimeters;
}

public double[] convertToInches(double[] rainfallInCentimeter){
    int length = rainfallInCentimeter.length;
    double[] rainfallInInches = new double[length];
    for( int i = 0; i < length; i++ ){
        rainfallInInches[i] = rainfallInCentimeter[i] * Constants.CENTIMETER_TO_INCH;
    }

    return rainfallInInches;
}

public static void main(String[] args){
    double rainfall [] = {1.07, 3.25, 4.51, 2.32, 8.28}; //in Inches

    // Test convert to centimeter
    Example example = new Example();
    double[] convertedArray = example.convertToCentimeter(rainfall);

    System.out.print("{");
    for(int i = 0; i < convertedArray.length; i++){
        System.out.print(convertedArray[i] + ", ");
    }
    System.out.println("}");
} // end main

}