如果程序在java中的文件中找到不可打印的字符,则终止该程序

时间:2016-03-31 00:52:37

标签: java

所以,我试图在java中作为String读取ASCII原始文件,然后变成char数组。因此,例如它应该能够读取“ab”,因为它们的ASCII值是96和97.但是,如果文件的ASCII值不是32 - 126并且为null,我希望程序结束。

到目前为止,我有这个:

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);
        }

    }
}

1 个答案:

答案 0 :(得分:1)

当您检查角色是否超出范围时,您应该使用OR ||而不是AND &&。角色不能低于和高于你的极限。

更改为

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

更新:要同时输入空白字符,请使用nextLinehasNextLine代替next。默认情况下,next会跳过空格。