javaを使って,a列,b列の空白数を数えるプログラムを教えてください.
自分なりに色々と考えてみましたが全くわかりません…
おカぞえ,どうぞよろしくお願いいたします.
初心者のため,具体的に教えていただけるとありがたいです.
以下に途中まで考えたコードを添付いたします.
自分としましては,空白に-9を代入し,後でそれを数えるというような方法を考えました.
import java.io.*;
import java.util.*;
public class PTMain {
public static void main(String[] args) {
try{
BufferedReader fin = new BufferedReader(new FileReader("test.csv"));
String ss ;
String a;
String b;
fin.readLine();
while((ss=fin.readLine())!=null){
StringTokenizer st =new StringTokenizer(ss,",");
a = st.nextToken();
b = st.nextToken();
if (a.equals(null)){
a="-9" ; //もし空白があるなら-9を代入したい
}
if (b.equals(null)){
b="-9" ;
}
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}
}
}
/* test.csv
a,b,c,d
5,6,3,
4,,8,1
,6,7,
5,7,8,8
9,1,45,1
6,6,,
,1,8,5
5,4,5,
*/
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
EnumMap を使って汎用的にしてみました。
出力:
Series a: 2
Series b: 1
Series c: 1
Series d: 4
import java.io.*;
import java.util.*;
public class QA5312967 {
private enum QA5312967_Series {
a(0)
, b(1)
, c(2)
, d(3)
// , series_name(column)
;
private int col;
private QA5312967_Series(int col) { this.col = col; }
public int getCol() { return this.col; }
}
private static Scanner in;
private static EnumMap<QA5312967_Series, Integer> is_void =
new EnumMap<QA5312967_Series, Integer>(QA5312967_Series.class);
private static int series_size;
private static void init() {
series_size = 0;
for (QA5312967_Series s : QA5312967_Series.values()) {
is_void.put(s, 0); series_size++;
}
}
private static void searchVoid(String[] field) {
for (int i = 0; i < field.length; i++) {
if (!field[i].equals("")) { continue; }
for (QA5312967_Series s : QA5312967_Series.values()) {
if (i == s.getCol()) {
int addee = is_void.get(s);
is_void.put(s, addee + 1);
}
}
}
}
public static void main(String[] args) {
// in = new Scanner(System.in);
try { in = new Scanner(new File("test.csv")); }
catch (Exception e) { e.printStackTrace(); System.exit(1); }
in.nextLine(); // ignore header
init();
while (in.hasNextLine()) {
String[] field = in.nextLine().split("\\s*,\\s*", -series_size);
searchVoid(field);
}
in.close();
StringBuilder sb = new StringBuilder();
for (QA5312967_Series s : QA5312967_Series.values()) {
if (sb.length() > 0) { sb.append("\n"); }
sb.append("Series " + s.name() + ": " + is_void.get(s));
}
System.out.println(sb);
}
}
No.1
- 回答日時:
> 空白に-9を代入し,後でそれを数えるというような
単に空白数を数えるというのが仕様なのだから、空白とわかった時点でカウントアップすればよいのでは。
それがダメな理由があれば、ちゃんと説明を考えてみるとか。
他人に説明できるようになっていれば、それをプログラムに落とし込む事が簡単にできるようになるかと。
(まあ他人に説明するのって、結構難しいと、自分もいっつも感じてます。理解が足りないからでしょうが。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java java final 1 2022/06/10 22:49
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- Java Java 配列<選挙> 4 2023/07/31 15:07
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- オープンソース Try Kotlinで readLine()を使うには 1 2023/03/27 21:06
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
Processingでマウスクリックで...
-
エンターキーを押すとOKボタン...
-
C#で、あるクラスのメンバーす...
-
javaアプレット repaintのタイ...
-
C# visibleプロパティをfalseに...
-
C# バイナリダンプを構造体に簡...
-
Junitテストでvoid戻り値メッソ...
-
【C#】ソースコードをファイル...
-
[C#.net]スレッド化された別フ...
-
struts2のchainで値の受け渡し...
-
EF CodeFirst についての質問
-
ボタンの複数割り当てについて
-
C#で別のFormへ複数の値を返そ...
-
Thread.sleepのInterruptedExce...
-
C#でキーイベントが発生しない...
-
ORA-01858: 数値を指定する箇所...
-
C言語のポインターに関する警告
-
ダブルクォーテーションのrepla...
-
VBAで配列の計算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
C#で、あるクラスのメンバーす...
-
Junitテストでvoid戻り値メッソ...
-
C#でのWNetAddConnection3の使...
-
Processingでマウスクリックで...
-
ボタンの複数割り当てについて
-
エンターキーを押すとOKボタン...
-
C# visibleプロパティをfalseに...
-
C# 矢印キーの取得
-
Thread.sleepのInterruptedExce...
-
C# DataGridView列カスタマイズ
-
C#でキーイベントが発生しない...
-
LVM_SETITEMSTATEでListViewの...
-
[C#.net]スレッド化された別フ...
-
GetDIBits関数の使い方について
-
C# 半角カナの文字化けについて
-
C#で別のFormへ複数の値を返そ...
-
C# 親フォームで指定した値を...
-
デスクトップマスコットのドラ...
-
javaアプレット repaintのタイ...
おすすめ情報