Re: [問題] 讀取的資料比對

看板java作者 (blackpastor)時間15年前 (2008/11/14 14:42), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串5/6 (看更多)
※ 引述《loadball (~@TimeDriver@~)》之銘言: : 最近寫一個程式 : 碰上了一些小問題 : 希望前輩們幫解答一下 : 我要讀取一個TXT檔 : 檔內有一些數據 : 例如: : 925001 : 682533 : 925001 : 123456 : 4組數據 : 我已經能做到讀取開檔的動作 : 但是這4組數字要比對呢? : 我要做的功能是數列的比對 : 例如: : 925001或先讀到然後跟682533比對 : 假如不是相同的數列則繼續跟下一個925001比對 : 因為兩個數列重複出現,會跳出一個類似警告視窗之類的 : 我有想過將讀到的東西先存入陣列內再讓她們去比對 : 但並不太了解將讀到的資料寫入陣列內這一步要怎麼寫呢? : 還有就是還有其它比較好的寫法來比對這些數列嗎? : 最直接的想法是我上面講的一個一個比 : 我想到的另一個方法是用類似做記號的方式 : if (讀到的的東西==925001) : a++; : ....... : if (a>=2) : 跳出警告視窗; : 抱歉續敘的有點差= = import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.Scanner; import javax.swing.JOptionPane; public class CheckDoubleNumber { public static void main(String[] args) { ArrayList<String> al = new ArrayList<String>(); String temp = ""; try { Scanner s = new Scanner(new File("Numbers.txt")); while (s.hasNext()) { al.add(s.next()); } for (int i = 0; i < al.size(); i++) { for (int j = i + 1; j < al.size(); j++) { // 檢查是否有出現重複的數字 if (al.get(i).trim().equals(al.get(j).trim())) { if (!temp.equals(al.get(j))) // 產生彈跳視窗 JOptionPane.showMessageDialog(null, "重覆數字 : " + al.get(j)); temp = al.get(j); } } } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } Numbers.txt 12 123 123 152 37 324 324 925001 682533 925001 123456 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.139.76.241 ※ 編輯: blackpastor 來自: 220.139.76.241 (11/14 14:48)
文章代碼(AID): #197Htoce (java)
討論串 (同標題文章)
文章代碼(AID): #197Htoce (java)