try {
string = scan.nextLine().charAt(0);
} catch(StringIndexOutOfBoundsException siobe){
System.out.println("invalid input");
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用此代码来处理从文本文件中获取的字符串的异常。但是我得到一个错误,说尝试将实际的字符串声明更改为字符。我不确定该如何处理?
但是我得到一个错误,说尝试将实际的字符串声明更改为字符。
scan.nextLine().charAt(0)是一个charif,如果string是String(您得到的编译错误暗示),则不能为其分配char。
如果仅需要输入行的第一个字符,则应将其存储在char变量中。
char first;
try {
first = scan.nextLine().charAt(0);
} catch(StringIndexOutOfBoundsException siobe){
System.out.println("invalid input");
}
Run Code Online (Sandbox Code Playgroud)
当然,如果在获取第一个字符之前测试String的长度,则可以避免捕获此异常:
char first;
String line = scan.nextLine();
if (line.length() > 0)
first = line.charAt(0);
else
System.out.println("invalid input");
Run Code Online (Sandbox Code Playgroud)