DB構築のためのプログラム
ここに質問の内容を詳しく書いてください。
JavaでDB構築のためのプログラムを作成しています。
RSSIとSSIDの組み合わせの数を数えたいのですが、それぞれでカウントしてしまい組み合わせたものを数えることができません。
組み合わせの例
SSID RSSI>
c8:b5:ad:32:26:90 -50
60:84:bd:94:68:fc -56
60:84:bd:94:68:f9 -62
c8:b5:ad:32:26:80 -68
-59~-50 = -50とします。RSSIはそれぞれ-49~-40=-40,-59~-50=-50,-69~-60=-60,-79~-70=-70,-89~-80=-80,-99~-90=-90となります。c8:b5:ad:32:26:90のRSSIが-50のものはいくつあるのかを数えるプログラムを作成したいです。
エラーメッセージ csvファイルを読み取れない。また、読み取ってもSSID,RSSIをそれぞれカウントしてしまう。
該当のソースコード
Java
1import java.io.BufferedReader; 2import java.io.FileNotFoundException; 3import java.io.FileReader; 4import java.io.IOException; 5import java.util.ArrayList; 6import java.util.Collections; 7import java.util.HashMap; 8import java.util.List; 9import java.util.Map; 10import java.io.File; 11 12public class Ccsv { 13 14 static final String FILE_PATH = "30ms20m.csv"; 15 16 public static void main(String[] args) { 17 18 // 集計と読み取り 19 Map<String, Integer> map = new HashMap<>(); 20 try (FileReader fr = new FileReader(FILE_PATH); 21 BufferedReader br = new BufferedReader(fr)){ 22 String line; 23 while ((line = br.readLine()) != null) { 24 String[]data = line.split(",",0); 25 for (String elem : data) { 26 if (!elem.isEmpty()) { 27 if (map.containsKey(elem)) { 28 int count = map.get(elem) + 1; 29 map.put(elem, count); 30 } else { 31 map.put(elem, 1); 32 } 33 } 34 35 } 36 37 } 38 }catch (FileNotFoundException e) { 39 System.out.println("ファイルが見つかりませんでした。"); 40 }catch (IOException e) { 41 System.out.println("読み取りに失敗しました。"); 42 } 43 44 45 List<String> list = new ArrayList<>(); 46 int maxLengthOfSpelling = 0; 47 for (String key : map.keySet()) { 48 list.add(key); 49 50 if (maxLengthOfSpelling < key.length()) { 51 maxLengthOfSpelling = key.length(); 52 } 53 } 54 55 Collections.sort(list, (o1, o2) -> { 56 return - map.get(o1) + map.get(o2); 57 }); 58 59 String format = "%-" + maxLengthOfSpelling + "s: %3d"; 60 for (String word : list) { 61 int count = map.get(word); 62 if (10 <= count) { 63 System.out.printf(format, word, count); 64 System.out.println(); 65 } 66 } 67 68 } 69 70}
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー