为什么我的主要静态方法无法正确打印出来?

问题描述 投票:-2回答:2
import java.util.Scanner;
import java.lang.Math.*;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;

public class PlanetGravity {

    public static double[] Gravity(double[] mass, double[] diameters){
        // for statement
        double [] gravity = new double[mass.length];
        double G = 6.67e-11;
        for (int i = 0; i < mass.length; i++){
        gravity[i] = ((G * mass[i]) / Math.sqrt((diameters[i]/2)));
    }
    return gravity;
}
    public static void outPrint(String[] planets, double[] diameters, double[] mass, double[] gravity) {
        System.out.println("Planetary Data");
        System.out.println("Planet          Diameter (km)      Mass (kg)      Gravity (m/s^2)");
        System.out.println("");
        for (int i = 0; i < planets.length; i++) {
            System.out.printf(planets[i], diameters[i], mass[i], gravity[i]);
    }
}

    public static void fileWriter(double[] info) throws IOException {
        File myFile = new File ("gravity.txt");
        PrintWriter outFile = new PrintWriter(myFile);
        for (int i = 0; i < info.length; i++) {
            outFile.println(info[i]);
    }
    outFile.close();
}
    // instance variables - replace the example below with your own
    public static void main(String[] args)throws IOException {
        // initialise instance variables
        String [] planets = {"Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune"};
        double [] diameters = {4880.0, 12103.6, 12756.3, 6794.0, 142984.0, 120536.0, 51118.0, 49532.0};
        double [] mass = {3.30e23, 4.869e24, 5.972e24, 6.4219e23, 1.900e27, 5.68e26, 8.683e25, 1.0247e26};
        double [] planetGravity = Gravity(mass, diameters);
        outPrint(planets, diameters, mass, planetGravity);
        fileWriter(planetGravity);
    }
}

我认为这是最后一个无法正常工作的静态方法部分,我不确定为什么会这样,或者也可能是我后来忽略了格式化。.但是我之前已经做过,并且可以正常工作程序,不确定为什么现在不起作用

java arrays static-methods
2个回答
1
投票
        System.out.printf(planets[i], diameters[i], mass[i], gravity[i]);

PrintStream.printf的第一个参数应为格式字符串。仅编译此行,因为planets[i]String


0
投票

[String [] planets = {“水星,金星,地球,火星,木星,土星,天王星,海王星”}]]

似乎好像缺少一些引号,所以Planets只是一个字符串...

[字符串[]行星= {“水星”,“金星”,“地球”,“火星”,“木星”,“土星”,“天王星”,“海王星”}]]]]

printf如其他答案所述:System.out.printf(“%s,%f,%f,%f \ n”,行星[i],直径[i],质量[i],重力[i]);

© www.soinside.com 2019 - 2024. All rights reserved.