我是Stack Overflow的新手,這是我的第一個問題!我正在爲使用Java的學校開展一個項目。第一部分我遇到了麻煩inolves:如何填充正在讀取文本文件的值的「衣衫襤褸」數組?
- 閱讀文件的每一行(在我的帖子的末尾列出)一次
- 創建一個整數的「破爛」陣列,4由X,其中我的4行將是「區域號碼」(在區域號碼中找到的號碼)列,並填寫每個列的州區號該區域。
因此,例如,第1行將保持區域1的狀態數量爲6列,第2行表示區域2導致7列,從而導致「不齊」數組。
我的問題是如何填充,或者什麼是最好的方式來填充我的數組與我的文件的結果讀?我知道如何聲明數組,初始化數組並在數組中創建空間,但是我不確定如何在我的State類中編寫我的方法來填充讀入數組的文件的結果。現在,當我嘗試使用Netbeans編譯此代碼時,出現「越界」錯誤。
這是我的Main和State的代碼。我的輸入文件列其下:
import java.util.*;
import java.io.*;
public class Main
{
public static void main(String[] args) throws IOException
{
// create new jagged array obj and fill it with some
// initial "dummy" values
int[][] arrPopulation =
{
{0,1,2,3,4,5},
{0,1,2,3,4,5,6},
{0,1,2,3,4,5,6,7,8,9},
{0,1,2,3,4,5,6,7,8,9,10}
};//end array declaration
// read in file States.txt, instantiate BufferedReader object,
// set new BufferedReader object to variable @newLine
FileReader f = new FileReader("States.txt");
BufferedReader br = new BufferedReader(f);
String newLine = br.readLine();
for (int rows = 0; rows < arrPopulation.length; rows++)
{
for (int col = 0; col < arrPopulation[col].length; col++) {
System.out.print(arrPopulation[rows][col] + " ");
}
// display on new lines; print out in a "table" format
System.out.println();
} // end for
State newState = new State(newLine);
int count = 0;
while(newLine != null)
{
newLine = br.readLine();
System.out.println(newState.getRegionNum());
}// end while
br.close();//close stream
} // end public static void main
} // end main
這是我爲我的國家一流至今:
import java.util.*;
public class State
{
private String statePop, stateNum, regionNum;
public State(String fileRead)
{
statePop = fileRead.substring(32,39);
regionNum = fileRead.substring(55,fileRead.length());
} // end constructor
public int getStatePop()
{
int population = Integer.parseInt(statePop);
return population;
} // @method getStatePop end method
public int getRegionNum()
{
int numOfRegion = Integer.parseInt(regionNum);
return numOfRegion;
}// end getRegionNum
public int getAvgPop()
{
int average = 2+2;
return average;
// total number of populations
// divide number of populations
}// @return the average population of states
public int getStateTotal()
{
//initialize static variable
int totalPopulation = 0;
int stateTotal = this.getStatePop() + totalPopulation;
return stateTotal;
} // @return stateTotal
public String toString()
{
return statePop + " " + stateNum + " ";
} // @method end toString method
} // end State class
列(在文件讀取未使用的名稱,只是爲了解釋目的):
國家首都人口縮寫區地區
的樹木包Washington Olympia WA 5689263West 6
Oregon Salem OR 3281974West 6
Massachusetts Boston MA 6147132New_England 1
Connecticut Hartford CT 3274069New_England 1
Rhode_Island Providence RI 988480New_England 1
New_York Albany NY18146200Middle_Atlantic2
Pennsylvania Harrisburg PA12001451Middle_Atlantic2
New_Jersey Trenton NJ 8115011Middle_Atlantic2
Maryland Annapolis MD 5134808Middle_Atlantic2
West_Virginia Charleston WV 1811156Middle_Atlantic2
Delaware Dover DE 743603Middle_Atlantic2
Virginia Richmond VA 6791345Middle_Atlantic2
South_Carolina Columbia SC 3835962South 3
Tennessee Nashville TN 5430621South 3
Maine Augusta ME 1244250New_England 1
Vermont Montpelier VT 588632New_England 1
New_Hampshire Concord NH 1185048New_England 1
Georgia Atlanta GA 7642207South 3
Florida Tallahassee FL14915980South 3
Alabama Montgomery AL 4351999South 3
Arkansas Little_Rock AR 2538303South 3
Louisiana Baton_Rouge LA 4368967South 3
Kentucky Frankfort KY 3936499South 3
Mississippi Jackson MS 2752092South 3
North_Carolina Raleigh NC 7546493South 3
California Sacramento CA32182118West 6
Idaho Boise ID 1228684West 6
Montana Helena MT 880453West 6
Wyoming Cheyenne WY 480907West 6
Nevada Carson_City NV 1746898West 6
Utah Salt_Lake_City UT 2099758West 6
Colorado Denver CO 3970971West 6
Alaska Juno AK 614010West 6
Hawaii Honolulu HI 1193001West 6
上午我在這條正確的軌道上?
感謝您提前提供任何幫助,並對長期發帖感到抱歉!
嘿,在那裏,我還沒有讀完你的整個問題,因爲它太長了。我會做的一件事就是減少輸入的大小。它只是讓問題看起來更大,但我不認爲這是真的有必要。 (我發現如果你提出更短的問題,你會得到更多的幫助[更快])。歡迎來到SO! – sixtyfootersdude 2010-07-30 01:09:23
嗨,埃米爾,謝謝你的歡迎! 一般來說,我不會提出這麼長的帖子,但我很偏執,確保所有相關數據都可以提供給SO社區,以幫助我解決問題。我對這種事情很偏執。 感謝您的建議! ;) – carlos 2010-07-30 01:54:52