質問編集履歴
5
誤りを訂正しました。
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -166,8 +166,8 @@ | |
| 166 166 | 
             
                            if(brM != null){
         | 
| 167 167 | 
             
                                brM.close();
         | 
| 168 168 | 
             
                            }
         | 
| 169 | 
            -
                            if( | 
| 169 | 
            +
                            if(brC != null){
         | 
| 170 | 
            -
                                 | 
| 170 | 
            +
                                brC.close();
         | 
| 171 171 | 
             
                            }
         | 
| 172 172 | 
             
                        }catch (IOException e) {
         | 
| 173 173 | 
             
                            // TODO 自動生成された catch ブロック
         | 
4
現時点のソースコードと問題点を修正しました。
    
        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 | 
            -
             | 
| 7 | 
            +
            ②inM.csvファイルが空の場合エラー表示して通常終了したい
         | 
| 12 8 | 
             
            のですが次の処理に進んでしまいます。
         | 
| 13 9 |  | 
| 14 | 
            -
            以上 | 
| 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  | 
| 66 | 
            +
            public class JudgementValue {
         | 
| 71 67 |  | 
| 72 | 
            -
             | 
| 68 | 
            +
                public static void main(String[] args) {
         | 
| 73 69 |  | 
| 74 | 
            -
             | 
| 70 | 
            +
                    BufferedReader brA = null; //inA Inputファイル入力用
         | 
| 75 | 
            -
             | 
| 71 | 
            +
                    BufferedReader brC = null; //inC 計算ファイル入力用
         | 
| 76 | 
            -
             | 
| 72 | 
            +
                    BufferedReader brM = null; //inM 判定マスタファイル入力用
         | 
| 77 | 
            -
             | 
| 73 | 
            +
                    BufferedWriter bwA = null ; //outAファイル出力用
         | 
| 78 | 
            -
             | 
| 74 | 
            +
                    BufferedWriter bwB = null ; //outBファイル出力用
         | 
| 79 | 
            -
             | 
| 75 | 
            +
                    String stA = ""; //inAファイルデータを格納
         | 
| 80 | 
            -
             | 
| 76 | 
            +
                    String stC = ""; //inCファイルデータを格納
         | 
| 81 | 
            -
             | 
| 77 | 
            +
                    String stM = ""; //inMファイルデータを格納
         | 
| 82 | 
            -
             | 
| 78 | 
            +
                    ArrayList<String[]> alMaster = new ArrayList<String[]>(); //判定マスタ
         | 
| 83 | 
            -
             | 
| 79 | 
            +
                    ArrayList<String[]> alCalc = new ArrayList<String[]>(); //計算C
         | 
| 84 | 
            -
             | 
| 80 | 
            +
                    String[][] masterM = null ; //判定マスタ用
         | 
| 85 | 
            -
             | 
| 81 | 
            +
                    String[][] numC = null ; //計算C用
         | 
| 86 | 
            -
             | 
| 82 | 
            +
                    double quotient = 0; //除算の商い結果
         | 
| 87 | 
            -
             | 
| 83 | 
            +
                    boolean emptyflgM = true; //inM判定マスタファイル空判定フラグ
         | 
| 88 | 
            -
             | 
| 84 | 
            +
                    boolean emptyflgC = true; //inC計算Cファイル空判定フラグ
         | 
| 89 | 
            -
             | 
| 85 | 
            +
                    boolean emptyflgA= true;  //inA入力ファイル空判定フラグ
         | 
| 90 86 |  | 
| 91 | 
            -
             | 
| 87 | 
            +
                    try{
         | 
| 92 | 
            -
             | 
| 88 | 
            +
                            brC = new BufferedReader(new InputStreamReader(new FileInputStream("C:/Users/temp/Desktop/inC.csv"),"JISAutoDetect"));
         | 
| 93 89 |  | 
| 94 | 
            -
             | 
| 90 | 
            +
                    }catch(FileNotFoundException e){
         | 
| 95 | 
            -
             | 
| 91 | 
            +
                        System.err.println("inC.csvファイルが見つかりません。");
         | 
| 96 | 
            -
             | 
| 92 | 
            +
                    } catch (UnsupportedEncodingException e) {
         | 
| 97 | 
            -
             | 
| 93 | 
            +
                        e.printStackTrace();
         | 
| 98 | 
            -
             | 
| 94 | 
            +
                    }
         | 
| 99 | 
            -
             | 
| 95 | 
            +
                    try{
         | 
| 100 | 
            -
             | 
| 96 | 
            +
                            brM = new BufferedReader(new InputStreamReader(new FileInputStream("C:/Users/temp/Desktop/inM.csv"),"JISAutoDetect"));
         | 
| 101 97 |  | 
| 102 | 
            -
             | 
| 98 | 
            +
                    }catch(FileNotFoundException e){
         | 
| 103 | 
            -
             | 
| 99 | 
            +
                        System.err.println("inM.csvファイルが見つかりません。");
         | 
| 104 | 
            -
             | 
| 100 | 
            +
                    }catch (UnsupportedEncodingException e) {
         | 
| 105 | 
            -
             | 
| 101 | 
            +
                        e.printStackTrace();
         | 
| 106 | 
            -
             | 
| 102 | 
            +
                    }
         | 
| 107 103 |  | 
| 108 | 
            -
             | 
| 104 | 
            +
                    fileError1:
         | 
| 109 | 
            -
             | 
| 105 | 
            +
                    //inMファイルデータを読み込み
         | 
| 110 | 
            -
             | 
| 106 | 
            +
                    try {
         | 
| 111 | 
            -
             | 
| 107 | 
            +
                        while((stM = brM.readLine()) != null){
         | 
| 112 108 |  | 
| 113 | 
            -
             | 
| 109 | 
            +
                            emptyflgM = false;
         | 
| 114 110 |  | 
| 115 | 
            -
             | 
| 111 | 
            +
                            if(stM.equals("")){
         | 
| 116 | 
            -
             | 
| 112 | 
            +
                                System.err.println("データに不備があります。");
         | 
| 117 | 
            -
             | 
| 113 | 
            +
                                break fileError1;
         | 
| 118 | 
            -
             | 
| 114 | 
            +
                            }
         | 
| 119 | 
            -
             | 
| 115 | 
            +
                            alMaster.add(stM.split(",")); /* ArrayListへ読み込み */
         | 
| 120 | 
            -
             | 
| 116 | 
            +
                        }
         | 
| 121 117 |  | 
| 122 | 
            -
             | 
| 118 | 
            +
                        if(emptyflgM){
         | 
| 123 | 
            -
             | 
| 119 | 
            +
                            System.err.println("inM.csvファイルは空です。");
         | 
| 124 | 
            -
             | 
| 120 | 
            +
                            break fileError1;
         | 
| 125 | 
            -
             | 
| 121 | 
            +
                        }
         | 
| 126 | 
            -
             | 
| 122 | 
            +
                         masterM = new String[alMaster.size()][];
         | 
| 127 123 |  | 
| 128 | 
            -
             | 
| 124 | 
            +
                         for (int i = 0; i < alMaster.size(); i++) {
         | 
| 129 125 |  | 
| 130 | 
            -
             | 
| 126 | 
            +
                             masterM[i] = alMaster.get(i); /* ArrayListから配列へ格納 */
         | 
| 131 | 
            -
             | 
| 127 | 
            +
                         }
         | 
| 132 128 |  | 
| 133 129 |  | 
| 134 | 
            -
             | 
| 130 | 
            +
                        //inCファイルデータを読み込み
         | 
| 135 | 
            -
             | 
| 131 | 
            +
                        while((stC = brC.readLine()) != null){
         | 
| 136 132 |  | 
| 137 | 
            -
             | 
| 133 | 
            +
                            emptyflgC = false;
         | 
| 138 134 |  | 
| 139 | 
            -
             | 
| 135 | 
            +
                            if(stC.equals("")){
         | 
| 140 | 
            -
             | 
| 136 | 
            +
                                System.err.println("データに不備があります。");
         | 
| 141 | 
            -
             | 
| 137 | 
            +
                                break fileError1;
         | 
| 142 | 
            -
             | 
| 138 | 
            +
                            }
         | 
| 143 139 |  | 
| 144 | 
            -
             | 
| 140 | 
            +
                            alCalc.add(stC.split(",")); /* ArrayListへ読み込み */
         | 
| 145 | 
            -
             | 
| 141 | 
            +
                        }
         | 
| 146 142 |  | 
| 147 | 
            -
             | 
| 143 | 
            +
                        if(emptyflgC){
         | 
| 148 | 
            -
             | 
| 144 | 
            +
                            System.err.println("inC.csvファイルは空です。");
         | 
| 149 | 
            -
             | 
| 145 | 
            +
                            break fileError1;
         | 
| 150 | 
            -
             | 
| 146 | 
            +
                        }
         | 
| 151 147 |  | 
| 152 | 
            -
             | 
| 148 | 
            +
                         numC = new String[alCalc.size()][];
         | 
| 153 149 |  | 
| 154 | 
            -
             | 
| 150 | 
            +
                         for (int i = 0; i < alCalc.size(); i++) {
         | 
| 155 151 |  | 
| 156 | 
            -
             | 
| 152 | 
            +
                                 numC[i] = alCalc.get(i); /* ArrayListから配列へ格納 */
         | 
| 157 153 |  | 
| 158 | 
            -
             | 
| 154 | 
            +
                                if (!isHanNum(numC[i][0]) || !isHanNum(numC[i][1])) {
         | 
| 159 | 
            -
             | 
| 155 | 
            +
                                    System.err.println("数値以外のものが含まれています。");
         | 
| 160 | 
            -
             | 
| 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 | 
            -
             | 
| 165 | 
            +
                        try {
         | 
| 183 | 
            -
             | 
| 166 | 
            +
                            if(brM != null){
         | 
| 167 | 
            +
                                brM.close();
         | 
| 168 | 
            +
                            }
         | 
| 169 | 
            +
                            if(brA != null){
         | 
| 170 | 
            +
                                brA.close();
         | 
| 171 | 
            +
                            }
         | 
| 184 | 
            -
             | 
| 172 | 
            +
                        }catch (IOException e) {
         | 
| 185 | 
            -
            				System.err.println("inA.csvファイルが見つかりません。");
         | 
| 186 | 
            -
            			}catch (UnsupportedEncodingException e) {
         | 
| 187 | 
            -
             | 
| 173 | 
            +
                            // TODO 自動生成された catch ブロック
         | 
| 188 | 
            -
             | 
| 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 | 
            -
             | 
| 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 | 
            -
             | 
| 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 | 
            -
             | 
| 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 | 
            -
             | 
| 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 | 
            -
             | 
| 206 | 
            +
                        while((stA = brA.readLine()) != null){
         | 
| 213 207 |  | 
| 214 | 
            -
            				if(stA.equals("")){
         | 
| 215 | 
            -
            					System.err.println("データに不備があります。");
         | 
| 216 | 
            -
             | 
| 208 | 
            +
                            emptyflgA = false;
         | 
| 217 | 
            -
            				}
         | 
| 218 209 |  | 
| 219 | 
            -
             | 
| 210 | 
            +
                            if(stA.equals("")){
         | 
| 220 | 
            -
             | 
| 211 | 
            +
                                System.err.println("データに不備があります。");
         | 
| 221 | 
            -
             | 
| 212 | 
            +
                                break fileError2;
         | 
| 222 | 
            -
             | 
| 213 | 
            +
                            }
         | 
| 223 214 |  | 
| 215 | 
            +
                            if(isHanNum(stA) == false){
         | 
| 224 | 
            -
             | 
| 216 | 
            +
                                System.err.println("数値以外のものが含まれています。");
         | 
| 217 | 
            +
                                break fileError2;
         | 
| 218 | 
            +
                            }
         | 
| 225 219 |  | 
| 226 | 
            -
             | 
| 220 | 
            +
                             for (int i = 0; i < numC.length; i++) {
         | 
| 227 221 |  | 
| 228 | 
            -
             | 
| 222 | 
            +
                                 if(stA.equals(numC[i][0])){  //入力の値と計算Cのキーの値の一致確認
         | 
| 229 223 |  | 
| 230 | 
            -
             | 
| 224 | 
            +
                                     quotient= Double.valueOf(stA) / Double.valueOf(numC[i][1]);
         | 
| 231 225 |  | 
| 232 | 
            -
             | 
| 226 | 
            +
                                    if(quotient % 2 == 0){ //偶数かどうかを確認
         | 
| 233 227 |  | 
| 234 | 
            -
             | 
| 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 | 
            -
             | 
| 233 | 
            +
                                        }else{
         | 
| 234 | 
            +
                                            bwB.write(stA);
         | 
| 235 | 
            +
                                            bwB.newLine();
         | 
| 236 | 
            +
                                            System.out.println("2番目:" + stA);
         | 
| 237 | 
            +
                                        }
         | 
| 242 238 |  | 
| 243 | 
            -
             | 
| 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 | 
            -
             | 
| 241 | 
            +
                                        if(masterM[0][1].equals("○")){
         | 
| 255 | 
            -
            			} //while
         | 
| 256 242 |  | 
| 257 | 
            -
             | 
| 243 | 
            +
                                            bwA.write(stA);
         | 
| 244 | 
            +
                                            bwA.newLine();
         | 
| 258 | 
            -
             | 
| 245 | 
            +
                                            System.out.println("3番目:" + stA);
         | 
| 246 | 
            +
                                        }else{
         | 
| 259 | 
            -
             | 
| 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 | 
            -
             | 
| 257 | 
            +
                        if(emptyflgA){
         | 
| 263 | 
            -
             | 
| 258 | 
            +
                            System.err.println("inA.csvファイルは空です。");
         | 
| 264 | 
            -
            			e.printStackTrace();
         | 
| 265 | 
            -
            		}finally{
         | 
| 266 | 
            -
            		try {
         | 
| 267 | 
            -
            			if(brA != null){
         | 
| 268 | 
            -
             | 
| 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 | 
            -
             | 
| 292 | 
            +
                        Double.parseDouble(s);
         | 
| 296 | 
            -
             | 
| 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
現時点の問題点を追加しました。
    
        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  | 
| 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 | 
            -
             | 
| 126 | 
            +
            			 masterM = new String[alMaster.size()][];
         | 
| 117 127 |  | 
| 118 | 
            -
             | 
| 128 | 
            +
            			 for (int i = 0; i < alMaster.size(); i++) {
         | 
| 119 | 
            -
            					 for (int j = 0; j < alMaster.size(); j++) {
         | 
| 120 129 |  | 
| 121 | 
            -
             | 
| 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 | 
            -
             | 
| 148 | 
            +
            				System.err.println("inC.csvファイルは空です。");
         | 
| 149 | 
            +
            				break fileError1;
         | 
| 150 | 
            +
            			}
         | 
| 142 151 |  | 
| 143 | 
            -
             | 
| 152 | 
            +
            			 numC = new String[alCalc.size()][];
         | 
| 144 | 
            -
            					 for (int j = 0; j < alCalc.size(); j++) {
         | 
| 145 153 |  | 
| 146 | 
            -
             | 
| 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 | 
            -
             | 
| 226 | 
            +
            					 if(stA.equals(numC[i][0])){  //入力の値と計算Cのキーの値の一致確認
         | 
| 214 | 
            -
             | 
| 227 | 
            +
             | 
| 215 | 
            -
             | 
| 228 | 
            +
            						 quotient= Integer.valueOf(stA) / Integer.valueOf(numC[i][1]);
         | 
| 216 | 
            -
             | 
| 229 | 
            +
             | 
| 217 | 
            -
            						if( | 
| 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 | 
            -
             | 
| 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 | 
            -
            			 | 
| 292 | 
            +
            			Double.parseDouble(s);
         | 
| 277 293 | 
             
            			return true;
         | 
| 278 294 |  | 
| 279 295 | 
             
            		}catch(Exception e){
         | 
2
情報の追加をしました。
    
        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             キー 値 | 
| 26 | 
            +
             10             キー 値      奇数   001,×
         | 
| 9 | 
            -
             9 | 
| 27 | 
            +
             9               1,2        偶数   002,○
         | 
| 10 | 
            -
             8 | 
| 28 | 
            +
             8               2,3
         | 
| 11 | 
            -
             7 | 
| 29 | 
            +
             7               3,1
         | 
| 12 | 
            -
             6 | 
| 30 | 
            +
             6               4,2
         | 
| 13 | 
            -
             5 | 
| 31 | 
            +
             5               5,3
         | 
| 14 | 
            -
             4 | 
| 32 | 
            +
             4               6,1
         | 
| 15 | 
            -
             3 | 
| 33 | 
            +
             3               7,2
         | 
| 16 | 
            -
             2 | 
| 34 | 
            +
             2               8,3
         | 
| 17 | 
            -
             1 | 
| 35 | 
            +
             1               9,1
         | 
| 18 | 
            -
             | 
| 36 | 
            +
                            10,2
         | 
| 19 37 |  | 
| 20 38 | 
             
            【実現したい出力例】
         | 
| 21 39 | 
             
            outA.csv   outB.csv
         | 
| 22 40 | 
             
            6             10
         | 
| 23 41 | 
             
            4              9
         | 
| 24 | 
            -
             | 
| 42 | 
            +
                           8
         | 
| 25 | 
            -
             | 
| 43 | 
            +
                           7
         | 
| 26 | 
            -
             | 
| 44 | 
            +
                           5
         | 
| 27 | 
            -
             | 
| 45 | 
            +
                           3
         | 
| 28 | 
            -
             | 
| 46 | 
            +
                           2
         | 
| 29 | 
            -
             | 
| 47 | 
            +
                           1
         | 
| 30 48 |  | 
| 49 | 
            +
            ```
         | 
| 31 50 | 
             
            ```ここに言語を入力
         | 
| 32 51 | 
             
            package lesson;
         | 
| 33 52 |  | 
1
書式の改善をしました。
    
        title	
    CHANGED
    
    | 
            File without changes
         | 
    
        body	
    CHANGED
    
    | @@ -3,30 +3,30 @@ | |
| 3 3 | 
             
            出力したいのですが、想定とおりに実装できません。
         | 
| 4 4 | 
             
            どうか実現方法を教えていただけないでしょうか、よろしくお願い致します。
         | 
| 5 5 |  | 
| 6 | 
            -
            入力 | 
| 6 | 
            +
            入力file        計算C        判定M
         | 
| 7 | 
            -
             | 
| 7 | 
            +
                                                キー  値
         | 
| 8 | 
            -
             10 | 
| 8 | 
            +
             10             キー 値       奇数   001,×
         | 
| 9 | 
            -
             9 | 
| 9 | 
            +
             9                 1,2         偶数   002,○
         | 
| 10 | 
            -
             8 | 
| 10 | 
            +
             8                 2,3
         | 
| 11 | 
            -
             7 | 
| 11 | 
            +
             7                 3,1
         | 
| 12 | 
            -
             6 | 
| 12 | 
            +
             6                 4,2
         | 
| 13 | 
            -
             5 | 
| 13 | 
            +
             5                 5,3
         | 
| 14 | 
            -
             4 | 
| 14 | 
            +
             4                 6,1
         | 
| 15 | 
            -
             3 | 
| 15 | 
            +
             3                 7,2
         | 
| 16 | 
            -
             2 | 
| 16 | 
            +
             2                 8,3
         | 
| 17 | 
            -
             1 | 
| 17 | 
            +
             1                 9,1
         | 
| 18 | 
            -
             | 
| 18 | 
            +
                              10,2
         | 
| 19 19 |  | 
| 20 20 | 
             
            【実現したい出力例】
         | 
| 21 21 | 
             
            outA.csv   outB.csv
         | 
| 22 | 
            -
            6 | 
| 22 | 
            +
            6             10
         | 
| 23 | 
            -
            4 | 
| 23 | 
            +
            4              9
         | 
| 24 | 
            -
             | 
| 24 | 
            +
                            8
         | 
| 25 | 
            -
             | 
| 25 | 
            +
                            7
         | 
| 26 | 
            -
             | 
| 26 | 
            +
                            5
         | 
| 27 | 
            -
             | 
| 27 | 
            +
                            3
         | 
| 28 | 
            -
             | 
| 28 | 
            +
                            2
         | 
| 29 | 
            -
             | 
| 29 | 
            +
                            1
         | 
| 30 30 |  | 
| 31 31 | 
             
            ```ここに言語を入力
         | 
| 32 32 | 
             
            package lesson;
         | 
