Java Unicode字符串为空?
我想使用Unicode字符将一个框打印到Java控制台中,但出于某种原因,它会给我以下运行时错误:Java Unicode字符串为空?,java,unicode,null,runtime-error,unicode-string,Java,Unicode,Null,Runtime Error,Unicode String,我想使用Unicode字符将一个框打印到Java控制台中,但出于某种原因,它会给我以下运行时错误: --------------------Configuration: PacManGame - JDK version 1.7.0_25 <Default> - <Default>-------------------- Exception in thread "main" java.lang.NullPointerException at Scoreboard.g
--------------------Configuration: PacManGame - JDK version 1.7.0_25 <Default> - <Default>--------------------
Exception in thread "main" java.lang.NullPointerException
at Scoreboard.genTopLine(Scoreboard.java:35)
at Scoreboard.<init>(Scoreboard.java:17)
at PacManGame.main(PacManGame.java:36)
Process interrupted by user.
--------------配置:PacManGame-JDK版本1.7.0\u 25---------------------
线程“main”java.lang.NullPointerException中出现异常
genTopLine(Scoreboard.java:35)
在记分牌上。(Scoreboard.java:17)
位于PacManGame.main(PacManGame.java:36)
进程被用户中断。
代码:
有人知道出了什么问题吗?
topline
实际上不是空的-它很好。问题是使用了
System.console()
,它返回null
(因此您可以在.writer()
上获得NPE)
改用System.out.println()
,它就可以正常工作了
有关
System.console()
在IDE中无法工作的原因的解释,请参见您是否尝试过调试您的程序?在课堂记分牌第35行哪个值为空?@Zavior你读过代码了吗?我知道它是空的,但即使我设置了它,它也是空的。@Jens,你读过代码了吗?我知道它是空的,但即使我设置了它,它也是空的。@user3580294我知道空指针是什么。“我如何修复它”。调试器在这里可以很好地为您服务。但是当我这样做时,unicode打印错误。@AidanEdwards确保您的IDE设置为使用UTF-8。转到“设置|文件编码”你知道它在JCreator中的位置吗?@aidanewards不知道…你可以尝试另一件事:byte[]utf8Bytes=topLine.getBytes(“UTF8”);字符串顶行=新字符串(UTF8字节,“UTF8”)代码>然后使用SOP打印。