gpt4 book ai didi

java - 如何在一个循环中读取多个数组?

转载 作者:行者123 更新时间:2023-11-29 05:16:53 25 4
gpt4 key购买 nike

这是我的路线:

这个程序将使用两个数组——它们被称为并行数组。您不会使用对象数组。您将在此应用程序中至少有 6 个方法(包括 main())

inputData() - 从数据文件输入到两个数组中 - 数据文件在下面,称之为“population.txt”记得在将 Scanner 对象关联到文件之前检查文件是否存在displayCountries() - 显示所有国家 - 仅显示国家

你能告诉我为什么这不会运行吗?我需要将人口和国家名称的值放在一起,以便稍后将其写在表格中。所以我在想我需要将第一个值读入 countryName 并将第一个值读入 populationNum 而不是同时读入它们。我正在阅读的文本在代码下方。我不知道该怎么做。我还想知道在实例化时是否需要 [25]。它给了我这个错误:

Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1540)
at Population.inputData(Population.java:32)
at Population.main(Population.java:13)

这是我的代码:

import java.io.*;
import java.util.Scanner;
import java.io.IOException;
import java.text.DecimalFormat;

public class Population{
public static void main(String [] args)throws IOException{
//Arrays
String [] countryNames = new String [25];
int [] populationNum = new int [25];
//Input data from file into the array
inputData(countryNames, populationNum);
//Displays and calculations
displayCountries(countryNames);
} //end main()

//this class gets the input for arrays from the file
public static void inputData(String [] countryNames, int [] populationNum) throws IOException{
File infile = new File("population.txt.");
int index = 0;
Scanner scan = new Scanner(infile);
while(scan.hasNext())
for(int i = 0; i < countryNames.length; i++)
countryNames[i] = scan.nextLine();
for(int i = 0; i < populationNum.length; i++)
populationNum[i] = scan.nextInt();
} //end inputData()
//this class displays the countries
public static void displayCountries(String [] countryNames) {
for(int i = 0; i < countryNames.length; i++)
System.out.println(countryNames[i]);
} //end displayCountries()
}//end class

Ghana
24333000
Brazil
193364000
Australia
23480970
Nigeria
170123000
Papua New Guinea
6888000
Mexico
108396211
Egypt
79221000
Iran
75078000
Myanmar
50496000
Belgium
10827519
Tuvalu
10000
russia
141927297

最佳答案

您需要在同一个循环中读入两个数组,如下所示:

int i = 0;
while(scan.hasNext()) {
countryNames[i] = scan.nextLine();
if (scan.hasNext()) populationNum[i] = scan.nextInt();
if (scan.hasNext()) scan.nextLine(); // Go to the next line
i++;
}

while 中的两个 for 循环是不正确的(更不用说第二个 for 循环甚至不是 的一部分>while,因为你省略了大括号)。

Demo.

关于java - 如何在一个循环中读取多个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26247971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com