本帖最后由 jiangfei66 于 2011-02-15 11:13:05 编辑

解决方案 »

  1.   

    Scanner沒用過,
    不過這個情況確實很奇怪,
    期待高手
      

  2.   

    附:输入字母或数字正常,输入汉字后再输入quit会没用
      

  3.   

    我用BufferedReader.readLine()尝试接收中文字符,但都会出现多余的字符
      

  4.   

    我的输出是下面这样的,没有出现你所说的情况,如果有问题的话,一般都是跟字符长度方面相关的问题,现在我这重现不了你的问题哦,你再看下是否跟jdk版本或者电脑设置方面有关。。 祝你能解决。输入名称(使用quit结束)
    # 我
    # 是
    # 中
    # 国
    # 人
    # quit
    显示输入:[我, 是, 中, 国, 人]
    我 是 中 国 人 
      

  5.   

    是的,我也遇见了这样的情况,而且按4楼的输入还是输出了字母。我把你的程序的输入输出机制改成了
    [align=center]private static BufferedReader stdIn=
         new BufferedReader(new InputStreamReader(System.in));
        private static PrintWriter stdOut=
         new PrintWriter(System.out,true);[/align]
    还是不行,可能就是jdk版本或者电脑设置方面的问题吧。
      

  6.   

    这只是 Eclipse Console 视图或者输入法的 bug,在处理输入时你得有点耐心,比如我输入第一个三时按 Enter 之后,光标出现的位置在第二行的 # 之前,这时就会出错,在# 之前应该是不允许输入才对,不知道什么原因会出现这样,以前我输入英文时也发现了会出现在#之前的问题,但输入的不是汉字所以没出错。如果我们把光标移到后面的输入位置的话就正确了。在这里面 # 是 System.out 输出的内容,似乎光标在 # 前面时某个神秘的缓冲区位置有问题。输入名称(使用quit结束)
    # 三
    # 二
    # 三
    # quit
    # quit
    显示输入:[三, fg二, fdg三, dquit]
    三 fg二 fdg三 dquit 
      

  7.   

     去掉这一句就没问题
     System.out.print("# ");
      

  8.   


    正解,在调试状态下也能输出正确的结果,这像是eclipse 执行线程之间问题
      

  9.   

    我发现只要你把System.out.print("# ");删去就没问题了,也就是说每一行只有输入的字符,没有前面那个“# ”。我估计是因为符号和汉字有冲突吧。