所以,我试图在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);
}
}
}
答案 0 :(得分:1)
当您检查角色是否超出范围时,您应该使用OR ||
而不是AND &&
。角色不能低于和高于你的极限。
更改为
if ((int)inputArray[a] < 32 || (int)inputArray[a] > 126)
更新:要同时输入空白字符,请使用nextLine
和hasNextLine
代替next
。默认情况下,next
会跳过空格。