作者blackpastor (blackpastor)
看板java
标题Re: [问题] 读取的资料比对
时间Fri Nov 14 14:42:57 2008
※ 引述《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)