2017-07-14 62 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()捕獲。進入商店並被稱爲空白空間,所以它不顯示。