質問するログイン新規登録

質問編集履歴

5

誤りを訂正しました。

2016/03/21 10:48

投稿

a-nya
a-nya

スコア31

title CHANGED
File without changes
body CHANGED
@@ -166,8 +166,8 @@
166
166
  if(brM != null){
167
167
  brM.close();
168
168
  }
169
- if(brA != null){
169
+ if(brC != null){
170
- brA.close();
170
+ brC.close();
171
171
  }
172
172
  }catch (IOException e) {
173
173
  // TODO 自動生成された catch ブロック

4

現時点のソースコードと問題点を修正しました。

2016/03/21 10:48

投稿

a-nya
a-nya

スコア31

title CHANGED
File without changes
body CHANGED
@@ -3,15 +3,11 @@
3
3
  出力したいのですが、想定とおりに実装できません。
4
4
 
5
5
  【問題点】
6
- ①数値化出来るかどうかをisHanNum(String s)メソッドを使用
7
- したいのですが、配列の要素だと型の不一致でコンパイル
8
- 出来ません。
9
- ②除算した結果を偶数か奇数で判断したいのですが。int同士だと
10
- 小数点以下切り捨てなので、すべて偶数になっしまいます。
6
+ ①出力結果2回づつ表示されています。
11
- inM.csvファイルが空の場合エラー表示して通常終了したい
7
+ inM.csvファイルが空の場合エラー表示して通常終了したい
12
8
  のですが次の処理に進んでしまいます。
13
9
 
14
- 以上3点の解決方法をお教えいただけないでしょうか。
10
+ 以上2点の解決方法をお教えいただけないでしょうか。
15
11
 
16
12
  【仕様内容】
17
13
  入力ファイルの数値をキーとして計算Cを読込みます。
@@ -67,238 +63,241 @@
67
63
  import java.io.UnsupportedEncodingException;
68
64
  import java.util.ArrayList;
69
65
 
70
- public class JudgmentValue {
66
+ public class JudgementValue {
71
67
 
72
- public static void main(String[] args) {
68
+ public static void main(String[] args) {
73
69
 
74
- BufferedReader brA = null; //inA Inputファイル入力用
70
+ BufferedReader brA = null; //inA Inputファイル入力用
75
- BufferedReader brC = null; //inC 計算ファイル入力用
71
+ BufferedReader brC = null; //inC 計算ファイル入力用
76
- BufferedReader brM = null; //inM 判定マスタファイル入力用
72
+ BufferedReader brM = null; //inM 判定マスタファイル入力用
77
- BufferedWriter bwA = null ; //outAファイル出力用
73
+ BufferedWriter bwA = null ; //outAファイル出力用
78
- BufferedWriter bwB = null ; //outBファイル出力用
74
+ BufferedWriter bwB = null ; //outBファイル出力用
79
- String stA = ""; //inAファイルデータを格納
75
+ String stA = ""; //inAファイルデータを格納
80
- String stC = ""; //inCファイルデータを格納
76
+ String stC = ""; //inCファイルデータを格納
81
- String stM = ""; //inMファイルデータを格納
77
+ String stM = ""; //inMファイルデータを格納
82
- ArrayList<String[]> alMaster = new ArrayList<String[]>(); //判定マスタ
78
+ ArrayList<String[]> alMaster = new ArrayList<String[]>(); //判定マスタ
83
- ArrayList<String[]> alCalc = new ArrayList<String[]>(); //計算C
79
+ ArrayList<String[]> alCalc = new ArrayList<String[]>(); //計算C
84
- String[][] masterM = null ; //判定マスタ用
80
+ String[][] masterM = null ; //判定マスタ用
85
- String[][] numC = null ; //計算C用
81
+ String[][] numC = null ; //計算C用
86
- int quotient = 0; //除算の商い結果
82
+ double quotient = 0; //除算の商い結果
87
- boolean emptyflgM = true; //inM判定マスタファイル空判定フラグ
83
+ boolean emptyflgM = true; //inM判定マスタファイル空判定フラグ
88
- boolean emptyflgC = true; //inC計算Cファイル空判定フラグ
84
+ boolean emptyflgC = true; //inC計算Cファイル空判定フラグ
89
- boolean emptyflgA= true; //inA入力ファイル空判定フラグ
85
+ boolean emptyflgA= true; //inA入力ファイル空判定フラグ
90
86
 
91
- try{
87
+ try{
92
- brC = new BufferedReader(new InputStreamReader(new FileInputStream("C:/Users/temp/Desktop/inC.csv"),"JISAutoDetect"));
88
+ brC = new BufferedReader(new InputStreamReader(new FileInputStream("C:/Users/temp/Desktop/inC.csv"),"JISAutoDetect"));
93
89
 
94
- }catch(FileNotFoundException e){
90
+ }catch(FileNotFoundException e){
95
- System.err.println("inC.csvファイルが見つかりません。");
91
+ System.err.println("inC.csvファイルが見つかりません。");
96
- } catch (UnsupportedEncodingException e) {
92
+ } catch (UnsupportedEncodingException e) {
97
- e.printStackTrace();
93
+ e.printStackTrace();
98
- }
94
+ }
99
- try{
95
+ try{
100
- brM = new BufferedReader(new InputStreamReader(new FileInputStream("C:/Users/temp/Desktop/inM.csv"),"JISAutoDetect"));
96
+ brM = new BufferedReader(new InputStreamReader(new FileInputStream("C:/Users/temp/Desktop/inM.csv"),"JISAutoDetect"));
101
97
 
102
- }catch(FileNotFoundException e){
98
+ }catch(FileNotFoundException e){
103
- System.err.println("inM.csvファイルが見つかりません。");
99
+ System.err.println("inM.csvファイルが見つかりません。");
104
- }catch (UnsupportedEncodingException e) {
100
+ }catch (UnsupportedEncodingException e) {
105
- e.printStackTrace();
101
+ e.printStackTrace();
106
- }
102
+ }
107
103
 
108
- fileError1:
104
+ fileError1:
109
- //inMファイルデータを読み込み
105
+ //inMファイルデータを読み込み
110
- try {
106
+ try {
111
- while((stM = brM.readLine()) != null){
107
+ while((stM = brM.readLine()) != null){
112
108
 
113
- emptyflgM = false;
109
+ emptyflgM = false;
114
110
 
115
- if(stM.equals("")){
111
+ if(stM.equals("")){
116
- System.err.println("データに不備があります。");
112
+ System.err.println("データに不備があります。");
117
- break fileError1;
113
+ break fileError1;
118
- }
114
+ }
119
- alMaster.add(stM.split(",")); /* ArrayListへ読み込み */
115
+ alMaster.add(stM.split(",")); /* ArrayListへ読み込み */
120
- }
116
+ }
121
117
 
122
- if(emptyflgM){
118
+ if(emptyflgM){
123
- System.err.println("inM.csvファイルは空です。");
119
+ System.err.println("inM.csvファイルは空です。");
124
- break fileError1;
120
+ break fileError1;
125
- }
121
+ }
126
- masterM = new String[alMaster.size()][];
122
+ masterM = new String[alMaster.size()][];
127
123
 
128
- for (int i = 0; i < alMaster.size(); i++) {
124
+ for (int i = 0; i < alMaster.size(); i++) {
129
125
 
130
- masterM[i] = alMaster.get(i); /* ArrayListから配列へ格納 */
126
+ masterM[i] = alMaster.get(i); /* ArrayListから配列へ格納 */
131
- }
127
+ }
132
128
 
133
129
 
134
- //inCファイルデータを読み込み
130
+ //inCファイルデータを読み込み
135
- while((stC = brC.readLine()) != null){
131
+ while((stC = brC.readLine()) != null){
136
132
 
137
- emptyflgC = false;
133
+ emptyflgC = false;
138
134
 
139
- if(stC.equals("")){
135
+ if(stC.equals("")){
140
- System.err.println("データに不備があります。");
136
+ System.err.println("データに不備があります。");
141
- break fileError1;
137
+ break fileError1;
142
- }
138
+ }
143
139
 
144
- alCalc.add(stC.split(",")); /* ArrayListへ読み込み */
140
+ alCalc.add(stC.split(",")); /* ArrayListへ読み込み */
145
- }
141
+ }
146
142
 
147
- if(emptyflgC){
143
+ if(emptyflgC){
148
- System.err.println("inC.csvファイルは空です。");
144
+ System.err.println("inC.csvファイルは空です。");
149
- break fileError1;
145
+ break fileError1;
150
- }
146
+ }
151
147
 
152
- numC = new String[alCalc.size()][];
148
+ numC = new String[alCalc.size()][];
153
149
 
154
- for (int i = 0; i < alCalc.size(); i++) {
150
+ for (int i = 0; i < alCalc.size(); i++) {
155
151
 
156
- numC[i] = alCalc.get(i); /* ArrayListから配列へ格納 */
152
+ numC[i] = alCalc.get(i); /* ArrayListから配列へ格納 */
157
153
 
158
- if(isHanNum(numC[i]) == false){
154
+ if (!isHanNum(numC[i][0]) || !isHanNum(numC[i][1])) {
159
- System.err.println("数値以外のものが含まれています。");
155
+ System.err.println("数値以外のものが含まれています。");
160
- break fileError1;
156
+ break fileError1;
161
- }
157
+ }
162
-
163
- }
164
158
 
165
- } catch(IOException e){
166
- System.err.println("エラーが発生しました。");
167
- e.printStackTrace();
168
- }finally{
169
- try {
170
- if(brM != null){
171
- brM.close();
172
- }
159
+ }
173
- if(brA != null){
174
- brA.close();
175
- }
176
- }catch (IOException e) {
177
- // TODO 自動生成された catch ブロック
178
- e.printStackTrace();
179
- }
180
- }//finally
181
160
 
161
+ } catch(IOException e){
162
+ System.err.println("エラーが発生しました。");
163
+ e.printStackTrace();
164
+ }finally{
182
- try{
165
+ try {
183
- brA = new BufferedReader(new InputStreamReader(new FileInputStream("C:/Users/temp/Desktop/inA.csv"),"JISAutoDetect"));
166
+ if(brM != null){
167
+ brM.close();
168
+ }
169
+ if(brA != null){
170
+ brA.close();
171
+ }
184
- }catch(FileNotFoundException e){
172
+ }catch (IOException e) {
185
- System.err.println("inA.csvファイルが見つかりません。");
186
- }catch (UnsupportedEncodingException e) {
187
- // TODO 自動生成された catch ブロック
173
+ // TODO 自動生成された catch ブロック
188
- e.printStackTrace();
174
+ e.printStackTrace();
189
- }
175
+ }
190
- try{
191
- bwA = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C:/Users/temp/Desktop/outA.csv"),"SJIS"));
192
- }catch(FileNotFoundException e){
193
- System.err.println("outA.csvファイルが見つかりません。");
194
- }catch (UnsupportedEncodingException e) {
195
- // TODO 自動生成された catch ブロック
176
+ }//finally
196
- e.printStackTrace();
197
- }
198
- try{
199
- bwB = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C:/Users/temp/Desktop/outB.csv"),"SJIS"));
200
- }catch(FileNotFoundException e){
201
- System.err.println("outB.csvファイルが見つかりません。");
202
- }catch (UnsupportedEncodingException e) {
203
- // TODO 自動生成された catch ブロック
204
- e.printStackTrace();
205
- }
206
177
 
207
- fileError2:
208
- try{
178
+ try{
179
+ brA = new BufferedReader(new InputStreamReader(new FileInputStream("C:/Users/temp/Desktop/inA.csv"),"JISAutoDetect"));
180
+ }catch(FileNotFoundException e){
181
+ System.err.println("inA.csvファイルが見つかりません。");
182
+ }catch (UnsupportedEncodingException e) {
209
- //inAファイルデータを読み込み
183
+ // TODO 自動生成された catch ブロック
184
+ e.printStackTrace();
185
+ }
186
+ try{
187
+ bwA = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C:/Users/temp/Desktop/outA.csv"),"SJIS"));
188
+ }catch(FileNotFoundException e){
189
+ System.err.println("outA.csvファイルが見つかりません。");
210
- while((stA = brA.readLine()) != null){
190
+ }catch (UnsupportedEncodingException e) {
191
+ // TODO 自動生成された catch ブロック
192
+ e.printStackTrace();
193
+ }
194
+ try{
195
+ bwB = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C:/Users/temp/Desktop/outB.csv"),"SJIS"));
196
+ }catch(FileNotFoundException e){
197
+ System.err.println("outB.csvファイルが見つかりません。");
198
+ }catch (UnsupportedEncodingException e) {
199
+ // TODO 自動生成された catch ブロック
200
+ e.printStackTrace();
201
+ }
211
202
 
203
+ fileError2:
204
+ try{
205
+ //inAファイルデータを読み込み
212
- emptyflgA = false;
206
+ while((stA = brA.readLine()) != null){
213
207
 
214
- if(stA.equals("")){
215
- System.err.println("データに不備があります。");
216
- break fileError2;
208
+ emptyflgA = false;
217
- }
218
209
 
219
- if(isHanNum(stA) == false){
210
+ if(stA.equals("")){
220
- System.err.println("数値以外のものれています。");
211
+ System.err.println("データに不備あります。");
221
- break fileError2;
212
+ break fileError2;
222
- }
213
+ }
223
214
 
215
+ if(isHanNum(stA) == false){
224
- for (int i = 0; i < numC.length; i++) {
216
+ System.err.println("数値以外のものが含まれています。");
217
+ break fileError2;
218
+ }
225
219
 
226
- if(stA.equals(numC[i][0])){ //入力の値と計算Cのキーの値の一致確認
220
+ for (int i = 0; i < numC.length; i++) {
227
221
 
228
- quotient= Integer.valueOf(stA) / Integer.valueOf(numC[i][1]);
222
+ if(stA.equals(numC[i][0])){ //入力の値と計算Cのキーの値の一致確認
229
223
 
230
- if(quotient % 2 == 0){ //偶数かどうかを確認
224
+ quotient= Double.valueOf(stA) / Double.valueOf(numC[i][1]);
231
225
 
232
- if(masterM[1][0].equals("○")){
226
+ if(quotient % 2 == 0){ //偶数かどうかを確認
233
227
 
234
- bwA.write(stA);
228
+ if(masterM[1][1].equals("○")){
235
- bwA.newLine();
236
- }else{
237
- bwB.write(stA);
238
- bwB.newLine();
239
- }
240
229
 
230
+ bwA.write(stA);
231
+ bwA.newLine();
232
+ System.out.println("1番目:" + stA);
241
- }else{
233
+ }else{
234
+ bwB.write(stA);
235
+ bwB.newLine();
236
+ System.out.println("2番目:" + stA);
237
+ }
242
238
 
243
- if(masterM[0][0].equals("○")){
239
+ }else{
244
240
 
245
- bwA.write(stA);
246
- bwA.newLine();
247
- }else{
248
- bwB.write(stA);
249
- bwB.newLine();
250
- }
251
- }
252
- }
253
- } //for
254
- quotient = 0; //除算の商い結果を0にリセット
241
+ if(masterM[0][1].equals("○")){
255
- } //while
256
242
 
257
- if(emptyflgA){
243
+ bwA.write(stA);
244
+ bwA.newLine();
258
- System.err.println("inA.csvファイルは空です。");
245
+ System.out.println("3番目:" + stA);
246
+ }else{
259
- break fileError2;
247
+ bwB.write(stA);
248
+ bwB.newLine();
249
+ System.out.println("4番目:" + stA);
260
- }
250
+ }
251
+ }
252
+ }
253
+ } //for
254
+ quotient = 0; //除算の商い結果を0にリセット
255
+ } //while
261
256
 
262
- }catch(IOException e){
257
+ if(emptyflgA){
263
- System.err.println("エラーが発生しました。");
258
+ System.err.println("inA.csvファイルは空です。");
264
- e.printStackTrace();
265
- }finally{
266
- try {
267
- if(brA != null){
268
- brA.close();
259
+ break fileError2;
269
- }
260
+ }
270
- if(bwA != null){
271
- bwA.close();
272
- }
273
- if(bwB != null){
274
- bwB.close();
275
- }
276
- }catch (IOException e) {
277
- // TODO 自動生成された catch ブロック
278
- e.printStackTrace();
279
- }
280
- }//finally
281
261
 
262
+ }catch(IOException e){
263
+ System.err.println("エラーが発生しました。");
264
+ e.printStackTrace();
265
+ }finally{
266
+ try {
267
+ if(brA != null){
268
+ brA.close();
269
+ }
270
+ if(bwA != null){
271
+ bwA.close();
272
+ }
273
+ if(bwB != null){
274
+ bwB.close();
275
+ }
276
+ }catch (IOException e) {
277
+ // TODO 自動生成された catch ブロック
278
+ e.printStackTrace();
279
+ }
280
+ }//finally
282
281
 
283
- }//main
284
282
 
285
- /**
283
+ }//main
286
- * 半角数値チェック
287
- * @param s 文字列
288
- * @return true 正常 false エラー
289
- */
290
- public static boolean isHanNum(String s){
291
- try{
292
- Double.parseDouble(s);
293
- return true;
294
284
 
285
+ /**
286
+ * 半角数値チェック
287
+ * @param s 文字列
288
+ * @return true 正常 false エラー
289
+ */
290
+ public static boolean isHanNum(String s){
291
+ try{
295
- }catch(Exception e){
292
+ Double.parseDouble(s);
296
- return false;
293
+ return true;
297
- }
298
294
 
295
+ }catch(Exception e){
296
+ return false;
299
- }
297
+ }
300
298
 
299
+ }
301
300
 
301
+
302
302
  }
303
-
304
303
  ```

3

現時点の問題点を追加しました。

2016/03/20 07:51

投稿

a-nya
a-nya

スコア31

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,18 @@
1
1
  java初心者です。
2
2
  入力ファイルをもとに計算Cと判定マスタMを使用して入力ファイルの値をoutA.csv、outB.csvに
3
3
  出力したいのですが、想定とおりに実装できません。
4
- どうか実現方法を教えていただけないでしょうか、よろしくお願い致します。
5
4
 
5
+ 【問題点】
6
+ ①数値化出来るかどうかをisHanNum(String s)メソッドを使用
7
+ したいのですが、配列の要素だと型の不一致でコンパイル
8
+ 出来ません。
9
+ ②除算した結果を偶数か奇数で判断したいのですが。int同士だと
10
+ 小数点以下切り捨てなので、すべてが偶数になってしまいます。
11
+ ③inM.csvファイルが空の場合エラー表示して通常終了したい
12
+ のですが次の処理に進んでしまいます。
13
+
14
+ 以上3点の解決方法をお教えいただけないでしょうか。
15
+
6
16
  【仕様内容】
7
17
  入力ファイルの数値をキーとして計算Cを読込みます。
8
18
  読込んだ計算Cの値で入力ファイルの数値を除算します。
@@ -15,11 +25,7 @@
15
25
  判定Mの値が「○」の場合、outAに入力ファイルの値を出力し、
16
26
  「×」の場合は、outBに入力ファイルの値を出力します。
17
27
 
18
- 現時点では、演算子 / は引数の型 BufferedReader, String[] で未定義ですのエラーが出ており
19
- 実装出来ておりません。
20
28
 
21
-
22
-
23
29
  ```ここに言語を入力
24
30
  入力file 計算C 判定M
25
31
  キー 値
@@ -48,7 +54,7 @@
48
54
 
49
55
  ```
50
56
  ```ここに言語を入力
51
- package lesson;
57
+ package test5;
52
58
 
53
59
  import java.io.BufferedReader;
54
60
  import java.io.BufferedWriter;
@@ -64,31 +70,30 @@
64
70
  public class JudgmentValue {
65
71
 
66
72
  public static void main(String[] args) {
67
- // TODO 自動生成されたメソッド・スタブ
68
73
 
69
74
  BufferedReader brA = null; //inA Inputファイル入力用
70
75
  BufferedReader brC = null; //inC 計算ファイル入力用
71
76
  BufferedReader brM = null; //inM 判定マスタファイル入力用
72
77
  BufferedWriter bwA = null ; //outAファイル出力用
73
78
  BufferedWriter bwB = null ; //outBファイル出力用
74
-
75
79
  String stA = ""; //inAファイルデータを格納
76
80
  String stC = ""; //inCファイルデータを格納
77
81
  String stM = ""; //inMファイルデータを格納
82
+ ArrayList<String[]> alMaster = new ArrayList<String[]>(); //判定マスタ
83
+ ArrayList<String[]> alCalc = new ArrayList<String[]>(); //計算C
84
+ String[][] masterM = null ; //判定マスタ用
85
+ String[][] numC = null ; //計算C用
86
+ int quotient = 0; //除算の商い結果
87
+ boolean emptyflgM = true; //inM判定マスタファイル空判定フラグ
88
+ boolean emptyflgC = true; //inC計算Cファイル空判定フラグ
89
+ boolean emptyflgA= true; //inA入力ファイル空判定フラグ
78
90
 
79
- ArrayList<String[]> alMaster = new ArrayList<String[]>();
80
- ArrayList<String[]> alCalc = new ArrayList<String[]>();
81
- String[][] masterM ;
82
- String[][] numC = null ;
83
- int sum = 0;
84
-
85
91
  try{
86
92
  brC = new BufferedReader(new InputStreamReader(new FileInputStream("C:/Users/temp/Desktop/inC.csv"),"JISAutoDetect"));
87
93
 
88
94
  }catch(FileNotFoundException e){
89
95
  System.err.println("inC.csvファイルが見つかりません。");
90
96
  } catch (UnsupportedEncodingException e) {
91
- // TODO 自動生成された catch ブロック
92
97
  e.printStackTrace();
93
98
  }
94
99
  try{
@@ -97,7 +102,6 @@
97
102
  }catch(FileNotFoundException e){
98
103
  System.err.println("inM.csvファイルが見つかりません。");
99
104
  }catch (UnsupportedEncodingException e) {
100
- // TODO 自動生成された catch ブロック
101
105
  e.printStackTrace();
102
106
  }
103
107
 
@@ -106,49 +110,57 @@
106
110
  try {
107
111
  while((stM = brM.readLine()) != null){
108
112
 
113
+ emptyflgM = false;
114
+
109
115
  if(stM.equals("")){
110
116
  System.err.println("データに不備があります。");
111
-
117
+ break fileError1;
112
118
  }
113
-
114
119
  alMaster.add(stM.split(",")); /* ArrayListへ読み込み */
120
+ }
115
121
 
122
+ if(emptyflgM){
123
+ System.err.println("inM.csvファイルは空です。");
124
+ break fileError1;
125
+ }
116
- masterM = new String[alMaster.size()][];
126
+ masterM = new String[alMaster.size()][];
117
127
 
118
- for (int i = 0; i < alMaster.size(); i++) {
128
+ for (int i = 0; i < alMaster.size(); i++) {
119
- for (int j = 0; j < alMaster.size(); j++) {
120
129
 
121
- masterM[i] = alMaster.get(i); /* ArrayListから配列へ格納 */
130
+ masterM[i] = alMaster.get(i); /* ArrayListから配列へ格納 */
131
+ }
122
132
 
123
- }
124
- }
125
- }
126
133
 
134
+ //inCファイルデータを読み込み
127
135
  while((stC = brC.readLine()) != null){
128
136
 
137
+ emptyflgC = false;
138
+
129
139
  if(stC.equals("")){
130
140
  System.err.println("データに不備があります。");
131
141
  break fileError1;
132
142
  }
133
143
 
134
- if(isHanNum(stC) == false){
135
- System.err.println("数値以外のものが含まれています。");
136
- break fileError1;
137
- }
138
-
139
144
  alCalc.add(stC.split(",")); /* ArrayListへ読み込み */
145
+ }
140
146
 
147
+ if(emptyflgC){
141
- numC = new String[alCalc.size()][];
148
+ System.err.println("inC.csvファイルは空です。");
149
+ break fileError1;
150
+ }
142
151
 
143
- for (int i = 0; i < alCalc.size(); i++) {
152
+ numC = new String[alCalc.size()][];
144
- for (int j = 0; j < alCalc.size(); j++) {
145
153
 
146
- numC[i] = alCalc.get(i); /* ArrayListから配列へ格納 */
154
+ for (int i = 0; i < alCalc.size(); i++) {
147
155
 
148
- }
156
+ numC[i] = alCalc.get(i); /* ArrayListから配列へ格納 */
149
- }
150
- }
151
157
 
158
+ if(isHanNum(numC[i]) == false){
159
+ System.err.println("数値以外のものが含まれています。");
160
+ break fileError1;
161
+ }
162
+
163
+ }
152
164
 
153
165
  } catch(IOException e){
154
166
  System.err.println("エラーが発生しました。");
@@ -167,7 +179,6 @@
167
179
  }
168
180
  }//finally
169
181
 
170
-
171
182
  try{
172
183
  brA = new BufferedReader(new InputStreamReader(new FileInputStream("C:/Users/temp/Desktop/inA.csv"),"JISAutoDetect"));
173
184
  }catch(FileNotFoundException e){
@@ -192,12 +203,14 @@
192
203
  // TODO 自動生成された catch ブロック
193
204
  e.printStackTrace();
194
205
  }
195
-
206
+
196
- fileError2:
207
+ fileError2:
197
208
  try{
198
209
  //inAファイルデータを読み込み
199
210
  while((stA = brA.readLine()) != null){
200
211
 
212
+ emptyflgA = false;
213
+
201
214
  if(stA.equals("")){
202
215
  System.err.println("データに不備があります。");
203
216
  break fileError2;
@@ -210,39 +223,42 @@
210
223
 
211
224
  for (int i = 0; i < numC.length; i++) {
212
225
 
213
- if(stA.equals(numC[i])){
226
+ if(stA.equals(numC[i][0])){ //入力の値と計算Cのキーの値の一致確認
214
-
227
+
215
- sum = brA / numC[i];
228
+ quotient= Integer.valueOf(stA) / Integer.valueOf(numC[i][1]);
216
-
229
+
217
- if(sum % 2 == 0){
230
+ if(quotient % 2 == 0){ //偶数かどうかを確認
218
-
231
+
219
232
  if(masterM[1][0].equals("○")){
220
-
233
+
221
234
  bwA.write(stA);
222
235
  bwA.newLine();
223
236
  }else{
224
237
  bwB.write(stA);
225
238
  bwB.newLine();
226
239
  }
227
-
240
+
228
241
  }else{
229
-
242
+
230
243
  if(masterM[0][0].equals("○")){
231
-
244
+
232
245
  bwA.write(stA);
233
246
  bwA.newLine();
234
247
  }else{
235
248
  bwB.write(stA);
236
249
  bwB.newLine();
237
250
  }
238
-
239
251
  }
240
252
  }
241
- }
253
+ } //for
242
-
254
+ quotient = 0; //除算の商い結果を0にリセット
255
+ } //while
256
+
243
- sum = 0;
257
+ if(emptyflgA){
258
+ System.err.println("inA.csvファイルは空です。");
259
+ break fileError2;
244
260
  }
245
-
261
+
246
262
  }catch(IOException e){
247
263
  System.err.println("エラーが発生しました。");
248
264
  e.printStackTrace();
@@ -273,7 +289,7 @@
273
289
  */
274
290
  public static boolean isHanNum(String s){
275
291
  try{
276
- Integer.parseInt(s);
292
+ Double.parseDouble(s);
277
293
  return true;
278
294
 
279
295
  }catch(Exception e){

2

情報の追加をしました。

2016/03/18 03:16

投稿

a-nya
a-nya

スコア31

title CHANGED
File without changes
body CHANGED
@@ -3,31 +3,50 @@
3
3
  出力したいのですが、想定とおりに実装できません。
4
4
  どうか実現方法を教えていただけないでしょうか、よろしくお願い致します。
5
5
 
6
+ 【仕様内容】
7
+ 入力ファイルの数値をキーとして計算Cを読込みます。
8
+ 読込んだ計算Cの値で入力ファイルの数値を除算します。
9
+
10
+ 除算した結果が偶数の場合、判定Mの「002」を読込みます。
11
+ 判定Mの値が「○」の場合、outAに入力ファイルの値を出力し、
12
+ 「×」の場合は、outBに入力ファイルの値を出力します。
13
+
14
+ 除算した結果が奇数の場合、判定Mの「001」を読込みます。
15
+ 判定Mの値が「○」の場合、outAに入力ファイルの値を出力し、
16
+ 「×」の場合は、outBに入力ファイルの値を出力します。
17
+
18
+ 現時点では、演算子 / は引数の型 BufferedReader, String[] で未定義ですのエラーが出ており
19
+ 実装出来ておりません。
20
+
21
+
22
+
23
+ ```ここに言語を入力
6
24
  入力file 計算C 判定M
7
- キー
25
+ キー
8
- 10 キー 値 奇数 001,×
26
+ 10 キー 値 奇数 001,×
9
- 9 1,2 偶数 002,○
27
+ 9 1,2 偶数 002,○
10
- 8 2,3
28
+ 8 2,3
11
- 7 3,1
29
+ 7 3,1
12
- 6 4,2
30
+ 6 4,2
13
- 5 5,3
31
+ 5 5,3
14
- 4 6,1
32
+ 4 6,1
15
- 3 7,2
33
+ 3 7,2
16
- 2 8,3
34
+ 2 8,3
17
- 1 9,1
35
+ 1 9,1
18
- 10,2
36
+ 10,2
19
37
 
20
38
  【実現したい出力例】
21
39
  outA.csv outB.csv
22
40
  6 10
23
41
  4 9
24
- 8
42
+ 8
25
- 7
43
+ 7
26
- 5
44
+ 5
27
- 3
45
+ 3
28
- 2
46
+ 2
29
- 1
47
+ 1
30
48
 
49
+ ```
31
50
  ```ここに言語を入力
32
51
  package lesson;
33
52
 

1

書式の改善をしました。

2016/03/17 15:59

投稿

a-nya
a-nya

スコア31

title CHANGED
File without changes
body CHANGED
@@ -3,30 +3,30 @@
3
3
  出力したいのですが、想定とおりに実装できません。
4
4
  どうか実現方法を教えていただけないでしょうか、よろしくお願い致します。
5
5
 
6
- 入力ファイル 計算C 判定M
6
+ 入力file 計算C 判定M
7
- キー 値
7
+ キー 値
8
- 10 キー 値 奇数 001,×
8
+ 10 キー 値 奇数 001,×
9
- 9 1,2 偶数 002,○
9
+ 9 1,2 偶数 002,○
10
- 8 2,3
10
+ 8 2,3
11
- 7 3,1
11
+ 7 3,1
12
- 6 4,2
12
+ 6 4,2
13
- 5 5,3
13
+ 5 5,3
14
- 4 6,1
14
+ 4 6,1
15
- 3 7,2
15
+ 3 7,2
16
- 2 8,3
16
+ 2 8,3
17
- 1 9,1
17
+ 1 9,1
18
- 10,2
18
+ 10,2
19
19
 
20
20
  【実現したい出力例】
21
21
  outA.csv outB.csv
22
- 6 10
22
+ 6 10
23
- 4 9
23
+ 4 9
24
- 8
24
+ 8
25
- 7
25
+ 7
26
- 5
26
+ 5
27
- 3
27
+ 3
28
- 2
28
+ 2
29
- 1
29
+ 1
30
30
 
31
31
  ```ここに言語を入力
32
32
  package lesson;