java 板


LINE

※ 引述《loadball (~@TimeDriver@~)》之銘言: : 最近寫一個程式 : 碰上了一些小問題 : 希望前輩們幫解答一下 : 我要讀取一個TXT檔 : 檔內有一些數據 : 例如: : 925001 : 682533 : 925001 : 123456 : 4組數據 : 我已經能做到讀取開檔的動作 : 但是這4組數字要比對呢? : 我要做的功能是數列的比對 : 例如: : 925001或先讀到然後跟682533比對 : 假如不是相同的數列則繼續跟下一個925001比對 : 因為兩個數列重複出現,會跳出一個類似警告視窗之類的 : 我有想過將讀到的東西先存入陣列內再讓她們去比對 : 但並不太了解將讀到的資料寫入陣列內這一步要怎麼寫呢? : 還有就是還有其它比較好的寫法來比對這些數列嗎? : 最直接的想法是我上面講的一個一個比 沒錯,確實是一個一個比較... (我是採用跟「選擇排序」同樣的方法來比較數字... 算是比較直接方式...當然還有其他方法) 首先用loadFile 讀取文字檔,然後將她存成ArrayList<Integer>, 然後將ArrayList轉存成int[],接著用迴圈檢查,將檢查結果傳回boolean值, 最輸出驗證結果。 程式碼大概的過程就這樣...希望對你有所幫助... ^ ^ (其實只要用ArrayList或int[]陣列其中一個就行了...不需要轉換那麼多次...) import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class CheckDoubleNumber { /** 檢查是否有出現重複的數字 */ public boolean checkIfDouble(int num[]) { for (int i=0;i<num.length;i++) { for (int j=i+1;j<(num.length);j++) { System.out.println(num[i] + "," + num[j]); if (num[i] == num[j]) { return true; } } } return false; } /** 讀取檔案 */ public List<Integer> loadFile(String fileName) { List <Integer> Arrays = new ArrayList <Integer>(); Scanner reader; try { reader = new Scanner(new File(fileName)); while (reader.hasNextInt()) { int n = reader.nextInt(); Arrays.add(n); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return Arrays; } /** 將 List 轉換成 int[] */ public int[] ListToArrays(List<Integer> list) { int num[] = new int[list.size()]; for (int i=0;i<list.size();i++){ num[i] = (Integer)list.get(i); } return num; } /** 輸出驗證結果 */ public void PrintResult(boolean isNumberDoubles) { if (isNumberDoubles) { System.out.println("數字有重複"); } else { System.out.println("每組數字皆是唯一"); } } public static void main(String[] args) { CheckDoubleNumber compare = new CheckDoubleNumber(); List<Integer> numList = compare.loadFile("Numbers.txt"); int num[] = compare.ListToArrays(numList); boolean result = compare.checkIfDouble(num); compare.PrintResult(result); } } -------------------------------------------------------------------- <Numbers.txt> 12 123 85 152 37 777 37 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.105.89.152







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:e-shopping 或 站內搜尋

TOP