2017-07-14 63 views
-1

后的方法我不能够使用nextInt method.This后使用nextLine方法在下面给出的说明....使用nextLine()使用nextInt()方法

音符黑客排名:(如果您使用方法nextInt()后立即使用方法,请回想一下,nextInt()读取整数标记;因此,该整数输入行的最后一个换行符仍在输入缓冲区中排队,并且下一个nextLine()将读取整数的其余部分行(空) nextLine方法没有被滑过,但它是空的。 代码:

import java.util.Scanner; 

public class Solution { 

public static void main(String[] args) { 
    Scanner scan = new Scanner(System.in); 
    int i = scan.nextInt(); 
    double d=scan.nextDouble(); 
    String s=scan.nextLine(); 
    // Write your code here. 

    System.out.println("String: " + s); 
    System.out.println("Double: " + d); 
    System.out.println("Int: " + i); 
    } 
} 

输出: 字符串: 双:3.1415 INT:42

+1

你能否向我们展示一些代码? –

+0

向我们显示代码和您遇到错误的位置。所以我们可以帮你解决它 – sForSujit

回答

0

是它读取剩余线,其是空的。因此,在给出输入传递空格时,您将看到输出,而不是打印字符串打印它的长度

2

在Scanner类中,如果我们在nextXXX()方法中的任何一个之后调用nextLine()方法,nextLine()不从控制台读取值,光标不会进入控制台,它将跳过该步骤。 nextXXX()方法是nextInt(),nextFloat(),nextByte(),nextShort(),nextDouble(),nextLong(),next()。

那是因为Scanner#nextInt方法不会消耗您输入的最后一个换行符,因此在下次调用Scanner#nextLine时会消耗换行符。

您可以触发一个空白扫描仪#nextLine电话后扫描仪#nextInt消耗该行的其余部分包括换行符

int option = input.nextInt(); 
input.nextLine(); // Consume newline left-over 
String str1 = input.nextLine(); 
0

你可以试试这个。

public static void main(String[] args) { 

     Scanner sc = new Scanner(System.in); 
     int x = sc.nextInt(); 
     double y = sc.nextDouble(); 
     sc.nextLine(); 
     String s = sc.nextLine(); 

     System.out.println("String: " + s); 
     System.out.println("Double: " + y); 
     System.out.println("Int: " + x); 

} 
+0

谢谢你。这是工作 –

0

当您输入nextInt()的整数时,立即按下回车键,此回车键由nextLine()捕获。进入商店并被称为空白空间,所以它不显示。