Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.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输入中?_Java_Equals - Fatal编程技术网

如何使用ÄÖ&Å;在java输入中?

如何使用ÄÖ&Å;在java输入中?,java,equals,Java,Equals,所以。我想知道我怎样才能做到 系统打印包含a-z+å、ä和ö字母的单词。 (目前,å、ä和ö以一种奇怪的方式印刷。我很确定你知道它是什么样子的:D) 用户输入一个单词并将其与第一个单词进行比较。此时,如果上面的单词包含ä,ö或å,我输入这个单词。。看不到那两个之间的匹配 所以问题是:我怎样才能使它,如果你把å,ä或ö输入,它会注意到它在刚刚打印的单词中是完全相同的å,ä,ö?我正在使用 answer.equals(rightanswer) 这是我的全部代码:D大部分只是任务和答案:) impor

所以。我想知道我怎样才能做到

  • 系统打印包含a-z+å、ä和ö字母的单词。 (目前,å、ä和ö以一种奇怪的方式印刷。我很确定你知道它是什么样子的:D)
  • 用户输入一个单词并将其与第一个单词进行比较。此时,如果上面的单词包含ä,ö或å,我输入这个单词。。看不到那两个之间的匹配 所以问题是:我怎样才能使它,如果你把å,ä或ö输入,它会注意到它在刚刚打印的单词中是完全相同的å,ä,ö?我正在使用

    answer.equals(rightanswer)

    这是我的全部代码:D大部分只是任务和答案:)

    import java.io.*;
    导入java.awt.*;
    公共级萨纳奥皮斯托{
    公众静态智力;
    公共静态字符串rightanswer;
    公共静态字符串问题;
    公共权利;
    公共静态输入错误;
    公共静态双重比率;
    公共静态void main(字符串[]args){
    BufferedReader in=新的BufferedReader(新的InputStreamReader(System.in));
    试一试{
    系统输出打印(“Moneenko sanaan tahdot vastata?”);
    quanity=Integer.parseInt(in.readLine());
    
    对于(intx=0;xUTF-8),您应该能够使用它们

    你是芬兰人,对吗?:)

    如果您尝试:

    BufferedReader in = new BufferedReader(new InputStreamReader(System.in, "UTF-8"));
    
    你的工作怎么样

    编辑: 不知何故,应该工作的UTF-8似乎不起作用。我尝试使用
    -Dfile.encoding=UTF8
    作为JVM属性,但对我不起作用 所以我基本上尝试了所有可用的字符集,其中很少给出正确的字符,以下是字符集名称: x-ISO-2022-CN-GB,x-ISO-2022-CN-CNS,x-IBM922,windows-1258,windows-1254,windows-1252, ISO-8859-9、ISO-8859-4、ISO-8859-1、ISO-2022-KR和ISO-2022-CN

    例如,如果您尝试:

    BufferedReader in = new BufferedReader(new InputStreamReader(System.in, "x-ISO-2022-CN-GB"));
    

    它应该可以工作

    我猜您正在使用System.out和System.in,其中使用系统默认编码

    这是windows命令行中的某种DOS编码,具体取决于您的计算机设置

    因此,要允许像äöü之类的任何类型的Unicode字符按您的意愿进行读取和打印,您必须更改命令行编码(例如,告诉DOS使用不同的编码),并让java使用相同的编码

    要正确回答如何做到这一点,需要更多关于操作系统的信息


    在java端,您可以使用
    InputStreamReader
    并将字符集(编码)提供给它的构造函数进行读取,还可以使用
    PrintStream
    (也提供相同的编码)写。

    我发现很难理解你的问题。我是唯一一个吗?
    我很确定你知道它是什么样子的
    不,不是所有人都知道,如果你包含这些信息,我们中的一些人可能知道如何解决你的问题。你需要在创建问题时付出更多的努力。你是如何使用/运行你的r应用程序。是否在操作系统控制台中?检查您是否使用了正确的字符编码。如果您使用正确的系统编码写入这些字符,则应正确显示这些字符。(阅读时相同).好的,我在这里插入我的全部代码不需要全部代码,我们可以用它们来重现这种行为就足够了。也就是说,很难修复任何基于编码的问题。我建议您使用窗口而不是命令行(例如Swing或SWT).我是芬兰人,你从哪里知道的?:我在哪里可以得到UTF-8?我在处理芬兰语输入时遇到了与你相同的问题。我使用的是扫描仪,解决方案是:扫描仪扫描仪=新扫描仪(新文件(“fileName.txt”),“UTF-8”);对我来说,它是这样写的:sanaopisto.java:11:error:unreported exception UnsupportedEncodingException;必须被捕获或声明为抛出BufferedReader in=new BufferedReader(new InputStreamReader(System.in,“UTF-8”);^--在单词new之后加上点(现在它没有给我任何错误,但它无论如何都不起作用了):/这些错误仍然以一种奇怪的方式出现/
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in, "x-ISO-2022-CN-GB"));