2016-03-31 10 views
0

したがって、JavaのStringとしてASCII rawファイルを読み込み、char配列に変換しようとしています。したがって、例えば、それらのASCII値が96と97であるので、 "ab"を読むことができるはずです。しかし、ファイルに32〜126でないASCII値があり、nullの場合、プログラムを終了します。あなたはORの代わり||&&を使用する必要がありますJavaのファイルで印刷できない文字が見つかった場合にプログラムを終了する

try { 
    Scanner inputFile = new Scanner(new FileReader(fileArg)); 

    while(inputFile.hasNext() && inputFile != null){ 

     inputString += inputFile.next(); 
    } 

    char inputArray[] = inputString.toCharArray(); 

    for(int a = 0; a < inputString.length(); a++){ 
     if((int)inputArray[a] < 32 && (int)inputArray[a] > 126){ 
      System.out.println("Invalid character found. " 
        + "The program will now terminate"); 
      System.exit(0); 
     } 

    } 
} 
+0

あなたの質問がありますか? – immibis

+0

@immibisこのようにして、ファイルのASCII値が32と126とそれ以上(印字不可能な文字)の場合、プログラムが終了するように、これは動作するようにはありますか? – user6134432

+0

それがあなたの質問なら、答えは "はい"です。 – immibis

答えて

1

文字が範囲外の場合は、チェックしているとき:

は、これまでのところ、私はこれを持っています。キャラクターはあなたの限界の上にも上にもできません。空白文字を入力するためにも、代わりにnextnextLinehasNextLineを使用します。

変更更新

if ((int)inputArray[a] < 32 || (int)inputArray[a] > 126) 

へ。デフォルトでは、 nextは空白をスキップします。

+0

私はそれを修正しました。しかし、今私はNoSuchElementExceptionを取得しています。 – user6134432

+0

私はinputFile!= null部分を取り出してエラーを消しましたが、ファイルに何もない場合にはプログラムを終了する必要があります。 – user6134432

+0

'if(inputString.length()== 0)System.exit(0);' – 4castle

関連する問題