Re: [問題] 關於string的重新給值

看板java作者 (shooting star)時間17年前 (2006/11/07 21:29), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《Hangy (有好多書想看)》之銘言: : 我寫了一個程式 : 基本上就是要讀一個檔 然後把檔案需要的地方 存到一個陣列裡面 : 我是先宣告一個String的陣列 然後再一個一個給值 : 可是後來印出來 全部都變成null了 : 請問我是那邊寫錯? : 還有一次宣告一個很大的array似乎效率會不太好 : 請問有沒有比較好的寫法可以把我想要的東西寫進一個string的array裡? : 謝謝 : FileInputStream fileInputStream = new FileInputStream("D://test.txt"); //讀檔 : BufferedReader br = new BufferedReader(new InputStreamReader( : fileInputStream)); : while (br.ready()) { : String str = br.readLine(); : String[] tokens = str.split(" "); : String[] temp1 = new String[10000]; // 此array用來儲存去掉該忽略的符號後 剩下 : 的文字 : int i=0; : for (String token : tokens) : { : if (token.substring(0, 1).equals("%")) : System.out.print(""); // 遇到註解的時候就忽略 : else if (token.equals("***********************************************")) : System.out.print(""); // 遇到分行號的時候就忽略 : else if (token.substring(0, 1).equals("1")) : System.out.print(""); // 遇到數字行號的時候忽略 : else { : temp1[i]=token; //想在這個地方重新給值 卻失敗 : i++; : } 按照你的寫法用 StringTokenizer 比較好吧 另外用arraylist來把 token 給新增進去,這樣就不用一開始就宣告一個很大的陣列 改寫如下: String str , token; StringTokenizer tokenizer; ArrayList<String> strList = new ArrayList(); while (br.ready()) { str = br.readLine(); tokenizer = new StringTokenizer(str); while(tokenizer.hasMoreTokens()) { token = tokenizer.nextToken(); //這裡處理你那 for loop 做的事情 else { //這裡是你有問題的地方 strList.add(token); } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.96.181
文章代碼(AID): #15K8e_mh (java)
文章代碼(AID): #15K8e_mh (java)