我使用的是neatbean6.8,最近从sun公司官网下的。
学习编程的过程中,发现了点小问题,就是System.in.skip(2);
这个语句貌似不好用。我的程序如下:import java.io.*;public class Main {    public static void main(String[] args)throws IOException {
       char ch = 0;       do
       {
            System.out.println("请输入一个小写字母: ");
            ch = (char)System.in.read();
            System.in.skip(2);//跳过回车
       }while (ch < 'a' || ch > 'z');
    }}
输出:
请输入一个小写字母: 
1
请输入一个小写字母: 
请输入一个小写字母: 
a
根据输出看,System.in.skip(2);没有起作用。使用断点查看ch的值的时候,ch第一次的值是1
第二次的值是/n,第三次是a。用System.in.read();就没问题。
在cmd环境下,使用javac Main.java       java Main  又没问题!
希望各位给个解答。
为这个问题纠结了一个下午了。

解决方案 »

  1.   

    我没装Eclipse
    我就装得有neatbean6.8
    希望大家用其他编译器试试
    看看是不是neatbean的问题还是代码有问题
      

  2.   

    Eclipse不需要安装,下载后解压缩即可。主要是可能对API的理解有误解。
      

  3.   

    帮着顶顶吧  我用的也是NB6.8 
    我试过了跟楼主同样的问题
    用记事本管用
    应该就是NB的问题
      

  4.   

    好象是netbeans debug的console的问题
    netbeans用javac,编译没问题,而且也证实了,用netbeans编译用命令行执行是没有问题的
    所以至少你知道你的程序没问题
    而且奇怪的是如果你用    public static void main(String[] args) throws IOException {
            char ch = 0;
         do{
                System.out.println("请输入一个小写字母: ");
                ch = (char)System.in.read();
                System.in.skip(2);
                System.in.(2);
                System.in.reset();
         }while (ch < 'a' || ch > 'z');
        }
      

  5.   

    发现skip还是改变了当前位置的,但是如果不,reset
    当你read的时候却没有变
      

  6.   

    是不是不和reset,第二次read的时候,读取的是/n?