首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

这为什么不能用nextLine()?该如何解决

2012-01-20 
这为什么不能用nextLine()?importjava.util.ScannerpublicclassRunnianTester{publicstaticvoidmain(Stri

这为什么不能用nextLine()?
import   java.util.Scanner;

public   class   RunnianTester
{
public   static   void   main(String[]   args)
{
Scanner   scan   =new   Scanner(System.in);
String   another;

do
{
    System.out.print( "输入一个年份: ");
    int   year=scan.nextInt();

            if(year> =1582)
            {
                if((year%4==0&&year%100!=0)||(year%400==0&&year%100==0))
                      System.out.println( "这是闰年 ");
                else
                      System.out.println( "这不是闰年 ");
            }
            else
                System.out.println( "错误:1582年之前还未使用阳历!! ");    
         
          System.out.println();
          System.out.print( "测试另一个?(y/n):   ");
          another=scan.next();   //这里为什么不能用scan.nextLine()?
        }while(another.equalsIgnoreCase( "y "));
}
}

[解决办法]

System.out.print( "输入一个年份: ");
int year=scan.nextInt();//此处输入一个数后按的回车被another=scan.nextLine();接收
所以只能用scan.next();来接收字符 或者 写两行another=scan.nextLine();

本人也是初学,有不对的地方大家帮指点哈。
[解决办法]
scanner有个扫描器

nextLine方法是返回当前行的其余部分,当前位置移至下一行的行首。
这里说的是指扫描器

你的程序 int year=scan.nextInt(); 假如输入是 2000 现在扫描器停在了0的后面
下面你又掉用scan.nextLine()的时候因为2000后面没东西 所以他什么也没取到并且吧位置
移至到了下一行的行首 这时候你在调用scan.nextLine() 你就可以输入东西了

热点排行