我在另一个洞里,我需要能够通过使用数组作为组来打印包含城市群的文本文件。这些组包括:NA(未列出人口),5000-7499,7500-9999和10,000-infinity。群体存储在如下所示的文本文件中。我还有当前使用的代码,用于从最大到最少打印人口,不包括将Na分组。
最后,我需要一个程序,可以使用数组将文本文件组织成组。但是,我仍然不知道如何工作数组。任何帮助将不胜感激。如果我不清楚任何事情或某些事情没有意义,请随意提问......我对编程仍然很陌生。谢谢!!!
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Population {
public static void main(String[] args) throws IOException {
// TODO code application logic here
// // read KeyWestTemp.txt
// create token1
String token1 = "";
// create Scanner inFile1
Scanner inFile1 = new Scanner(new File("Populationtxt")).useDelimiter(",\\s*");
// Original answer used LinkedList, but probably preferable to use ArrayList in most cases
// List<String> temps = new LinkedList<String>();
List<String> temps = new ArrayList<String>();
// while loop
while (inFile1.hasNext()) {
// find next line
token1 = inFile1.next();
temps.add(token1);
}
inFile1.close();
String[] tempsArray = temps.toArray(new String[0]);
for (String s : tempsArray) {
System.out.println(s);
}
}
}
以下是文本文件中列出的信息:
Philadelphia city:, 1526006
Pittsburgh city:, 305704
Harrisburg city:, 49528
Altoona city:, 46320
State College borough:, 42034
Monroeville municipality:, NA
Johnstown city:, 20978
Murrysville municipality:,20079
McKeesport city:, NA
Greensburg city:, 14892
Indiana borough:, 13975
Washington city:, 13663
Meadville city:, NA
New Kensington city:, 13116
St. Marys city:, 13070
Lower Burrell city:, 11761
Munhall borough:, NA
Jefferson Hills borough:, 10619
Waynesboro borough:, 10568
Oil City city:, 10557
Uniontown city:, 10372
Lock Haven city:, 9772
Jeannette city:, 9654
Beaver Falls city:, NA
Swissvale borough:, 8983
Mechanicsburg borough:, 8981
Carbondale city:, NA
Latrobe city:, 8338
Grove City borough:, 8322
Pleasant Hills borough:, 8268
White Oak borough:, NA
DuBois city:, 7794
Monessen city:, 7720
Connellsville city:, 7637
Gettysburg borough:, 7620
California borough:, 6795
Somerset borough:, 6277
Clearfield borough:, NA
McKees Rocks borough:, 6104
Punxsutawney borough:, 5962
Duquesne city:, 5565
Shippensburg borough:, 5492
Fox Chapel borough:, 5388
Turtle Creek borough:, 5349
Clarion borough:, 5276
Vandergrift borough:, NA
Westmont borough:, 5181
Arnold city:, NA
Kutztown borough:, 5012
答案 0 :(得分:0)
要解决此问题,您必须对数据进行排序。我假设您不想重新排序文本文件,但添加并不困难。因此,您可以对数据进行排序,找到一种简单的算法。如果你有时间我建议详细介绍更大更复杂的排序算法,但是为了开始你可以使用一个简单的算法。你需要做的是获取数字或字符并找到值。然后将其添加到数组中,最后对数组中的所有数据进行排序。 Character.isDigit(字符串);然后如果是,则将其添加到数组中以获取数字。之后,您可以使用像冒泡排序这样的简单排序算法将数字按顺序移动,然后打印出在for循环中完成的列表,并将城市名称放在一个单独的数组中。