質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

0回答

1140閲覧

csv内にあるRSSIとSSIDを組み合わせたものを数えたい

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2019/07/10 08:26

編集2019/07/10 09:26

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/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/07/10 08:29

コードはマークダウンのcode機能を利用してご提示ください。 コードブロックからはみ出ているときちんと反映されません。 (難しければコード部分を選択し、<code>ボタンを押すだけでも構いません)
m.ts10806

2019/07/10 08:30

また「JavaでDB構築のためのプログラム」とはどういうことでしょうか。 通常は「アプリケーションに必要なデータをプログラミング言語から操作する」だと思うのですが。
退会済みユーザー

退会済みユーザー

2019/07/10 08:32

数々のご指摘ありがとうございます。プログラミング言語から操作する方向で間違いないです。 またコードの入力のほうをもう一度確認してきます。ありがとうございます。
m.ts10806

2019/07/10 08:33

質問は編集できますので、タイトルも含めてご調整ください
m.ts10806

2019/07/10 08:42

私の言い方が良くなかったですね・・・ できればタイトルは「実際に起きている問題」にフォーカスをあてた要件にしてもらえればと思います。 質問内容に書かれている状況や問題・課題を要約したものですね。 あまりにカテゴリが大きいものや汎用的すぎると「何が問題か」がタイトルを見ただけでは分かりませんし、同じタイトルで質問を量産することになってしまいます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問