作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我完成了这个程序,但出了点问题。我的意思是它没有打印出它需要的东西。它应该从人口普查中获取人口以及州名,并将其从最小到最大的州排序。当我运行该项目时,它打印出阿拉巴马州及其人口 50 次,而不是从人口最少到人口最多的所有州,我不确定该怎么做,我真的需要一些帮助,拜托。人口普查的一个例子如下...这些中的每一个都在不同的行上:
Alabama,4779736
Alaska,710231
Arizona,6392017
程序如下:
public static void main(String[] args) throws IOException {
File f = new File("census2010.txt");
if(!f.exists()) {
System.out.println( "f does not exist ");
}
Scanner infile = new Scanner(f);
infile.useDelimiter ("[\t|,|\n|\r]+");
final int MAX = 50;
int [] myarray = new int [MAX];
String[] statearray = new String[MAX];
int fillsize;
fillsize = fillarray (myarray, statearray, infile);
printarray (myarray, fillsize, prw);
sortarray(myarray, statearray, fillsize);
}
public static int fillarray (int[] num, String[] states, Scanner infile) throws FileNotFoundException{
int retcnt = 0;
int pop;
String state;
state = infile.next();
pop = infile.nextInt();
for( int count = 0; count < 50; count++){
System.out.println(state + " " + pop + " ");
states[retcnt] = state;
num[retcnt] = pop;
retcnt++;
}
return (retcnt);
}
public static void printarray (int[] num, int fillsize, PrintWriter prw){
for (int counts = 0; counts < fillsize ; counts++){
System.out.println("For the position ["+counts+"] the value is " + num[counts]);
prw.println("For the position ["+counts+"] the value is " + num[counts]);
}
return;
}
public static void sortarray(int[] poparray, String[] statearray, int fillsize){
for( int fill = 0; fill < fillsize -1; fill = fill+1){
for ( int compare = fill+1; compare < fillsize; compare++){
if( poparray[compare] < poparray[fill]){
int poptemp = poparray[fill];
poparray[fill] = poparray[compare];
poparray[compare] = poptemp;
// do I need something here?
String statetemp = statearray[fill];
statearray[fill] = statearray[compare];
statearray[compare] = statetemp;
}
}
}
}
我认为我的问题出在排序数组中,但我做错了什么?
最佳答案
您只能在 fillarray
方法中从 Scanner 读取一次。您需要将从 Scanner 读取的代码放在 for
循环中,以便它在每次循环迭代时读取一行数据。
关于java - 用 Java 对 2010 年人口普查的数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16093357/
我是一名优秀的程序员,十分优秀!