Re: [問題] 讀取的資料比對
※ 引述《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)
討論串 (同標題文章)