Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我将扫描器int转换为char,为什么这会给我一个不匹配的异常?_Java_Eclipse_Java.util.scanner_Type Mismatch - Fatal编程技术网

Java 我将扫描器int转换为char,为什么这会给我一个不匹配的异常?

Java 我将扫描器int转换为char,为什么这会给我一个不匹配的异常?,java,eclipse,java.util.scanner,type-mismatch,Java,Eclipse,Java.util.scanner,Type Mismatch,我创建了一个新的扫描仪,我创建了我的字符变量,然后我在中读取了我的字符变量,它给出了一个不匹配的错误???一个整数不是字符 尝试使用next,然后只使用字符串的第一个字符 使用String.charAt(int) 尝试使用此选项获取字符 public class Practice { public static void main(String []args){ Scanner ScanMe=new Scanner(System.in); char ch,answer='K'; System.o

我创建了一个新的扫描仪,我创建了我的字符变量,然后我在中读取了我的字符变量,它给出了一个不匹配的错误???

一个
整数
不是字符

尝试使用
next
,然后只使用字符串的第一个字符

使用
String.charAt(int)


尝试使用此选项获取字符

public class Practice {
public static void main(String []args){
Scanner ScanMe=new Scanner(System.in);
char ch,answer='K';
System.out.println("I am thinking of a letter between A and Z.");
ch=(char)ScanMe.nextInt();
System.out.println(ch);
if(answer==ch){
System.out.println("CORRECT");
}
}
}

另外,K和K不一样。

马特的解决方案是正确的,但我想补充一点说明
ch=(char)ScanMe.nextInt()
引发异常,因为首先计算的是
ScanMe.nextInt()
。假设您输入了一个字母,nextInt将抛出一个异常,因为字母不是十进制整数(nextInt
所期望的)

但是,如果您输入一个十进制整数,则一切正常。例如,如果您输入75,这个方法调用将起作用,当您将75转换为一个字符时,它实际上是“K”,因此您最初编写的程序将显示“CORRECT”


如果转换不合理,请检查ASCII表。

可能重复:您的输入是什么?但我将其转换为图表。正如我所说,您也不能从字符串转换为字符,字符串的第一个字母与字符值不同使用
charAt
如何将12345转换为字符?哥们,回答得很好,我会在允许的情况下给你支票,还有为什么你要在.charAt中加零,这意味着什么charAt(0)确保它只需要你输入的第一个特许证,所以如果你输入ABSCDSFFHFGJ,它只需要我得到的aOh,所以基本上,一旦nextInt意识到我在其中放入了任何东西,那么int就会自动抛出一个异常,而不会被转换为char?基本上就是这样。一旦抛出异常,就不再执行代码(除非捕获到异常,如果有的话)。
ch = ScanMe.next().charAt(0);