在Java中,我們常常使用Scanner類來接收用戶的輸入。在使用Scanner類中的next()和nextLine()方法時(shí),需要注意它們的區(qū)別。
首先,我們看一下next()方法:
Scanner scanner = new Scanner(System.in); String str1 = scanner.next();
該方法會(huì)接收用戶輸入的一個(gè)字符串,但是它以空格、回車等作為分隔符。也就是說,如果用戶輸入了"Hello, World!",那么在程序中接收到的只會(huì)是"Hello,"。
而nextLine()方法則是接收一整行的字符串:
Scanner scanner = new Scanner(System.in); String str2 = scanner.nextLine();
當(dāng)用戶輸入"Hello, World!"時(shí),程序會(huì)接收到完整的字符串"Hello, World!"。
需要注意的是,如果在使用next()方法后再使用nextLine()方法,會(huì)出現(xiàn)異常。因?yàn)閚ext()方法只接收一個(gè)單詞(以空格、回車等作為分隔符),而不會(huì)讀取到換行符。因此,如果我們?cè)趎ext()方法后使用nextLine()方法,它會(huì)讀取到上一個(gè)輸入單詞后的換行符,而不是我們想要的下一行輸入。這時(shí)就需要在使用next()方法前加一個(gè)nextLine()方法來處理這個(gè)換行符,代碼如下:
Scanner scanner = new Scanner(System.in); String str1 = scanner.next(); scanner.nextLine(); String str2 = scanner.nextLine();
上述代碼的作用是先使用next()方法接收一個(gè)單詞,然后使用nextLine()方法處理從該單詞后的換行符,最后再使用nextLine()方法接收下一行完整的輸入。