Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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
IllegalFormatConversionException:c!=java.lang.string(使用printf时)_Java_String_Formatter - Fatal编程技术网

IllegalFormatConversionException:c!=java.lang.string(使用printf时)

IllegalFormatConversionException:c!=java.lang.string(使用printf时),java,string,formatter,Java,String,Formatter,我正在做一个刽子手游戏,我的代码已经编译好了,我开始运行它,结果出现了一个错误:看起来像这样。我试过调试,但没有成功。我只是不知道它在问什么。有人能帮忙吗 P:\CSCI 161>java hw101 Lets play Hangman Guess a letter:c Exception in thread "main" java.util.IllegalFormatConversionException: c != java .lang.String at java.

我正在做一个刽子手游戏,我的代码已经编译好了,我开始运行它,结果出现了一个错误:看起来像这样。我试过调试,但没有成功。我只是不知道它在问什么。有人能帮忙吗

P:\CSCI 161>java hw101
Lets play Hangman

Guess a letter:c
Exception in thread "main" java.util.IllegalFormatConversionException: c != java
.lang.String
        at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:399
9)
        at java.util.Formatter$FormatSpecifier.printCharacter(Formatter.java:278
0)
        at java.util.Formatter$FormatSpecifier.print(Formatter.java:2671)
        at java.util.Formatter.format(Formatter.java:2433)
        at java.io.PrintStream.format(PrintStream.java:920)
        at java.io.PrintStream.printf(PrintStream.java:821)
        at hw101.check(hw101.java:67)
        at hw101.main(hw101.java:13)
代码:

import java.util.*;
导入java.io.*;
公共级hw101
{
公共静态void main(字符串参数[])
{   
字符串活动字;
System.out.printf(“让我们扮演刽子手”\n);
activeword=randomword();
检查(activeword);
}
公共静态字符串randomword()
{
字符串单词[]={“胖”、“猫”、“狗”、“蝙蝠”、“帕特”};
字符串activeword=words[(int)(Math.random()*5)];
返回activeword;
}
公共静态无效检查(字符串activeword)
{
扫描器人员=新扫描器(System.in);
焦英寸;
字符数组[];
字符[];
int-s;
int m;
int notright=0;
int失败=0;
数组=新字符[activeword.length()];
array=activeword.toCharArray();
字符串dummy=“!!!”;
字母=新字符[dummy.length()];
对于(s=0;s使用%s(字符串)格式

这一行:

System.out.printf ("%c", Arrays.toString(letter));
应替换为:

System.out.printf ("%s", Arrays.toString(letter));
出现此错误是因为您正在使用
%c
打印格式打印字符串。

数组。toString(字母)
将返回
字符串,但
%c
需要
字符

System.out.printf ("%c", Arrays.toString(letter));
System.out.printf ("%s", Arrays.toString(letter));