Zi 字媒體
2017-07-25T20:27:27+00:00
在Scanner中,有next()與nextLine()兩種方法
next()是以空白或換行為區格,nextLine()則是以換行為區格讀取整行
當一起使用時,會出現遇到nextLine()無法正常運作的問題
如以下程式碼
import java.util.Scanner;
public class test
{
public static void main(String [] argv)
{
Scanner cin = new Scanner(System.in);
String str = cin.next();//輸入123
String str2 = cin.nextLine();//輸入321
//只顯示123
System.out.println(str + " " + str2);
}
}
會這樣子的原因是因為next()是抓取空白或\n換行字元以前的字串,所以next()抓完字串之後\n就被nextLine()抓住了,因此nextLine()只有抓到\n而已,沒有抓到應該抓的字串。
解決方法就是不斷讓nextLine()重複抓取,直到抓到有字串為止:
import java.util.Scanner;
public class test
{
public static void main(String [] argv)
{
Scanner cin = new Scanner(System.in);
String str = cin.next();//輸入123
String str2;
//不斷重複抓取,直到抓到字串為止
while( (str2 = cin.nextLine()).equals("") );//輸入321
//只顯示123
System.out.println(str + " " + str2);
}
}
Categories: Java
分類
Android
AngularJS
Chrome
Database
MySQL
DataStructure
Editor
Vim
Firefox
Git
Hadoop
Language
Go
Java
JavaScript
jQuery
jQueryChart
Node.js
Vue
PHP
Laravel
ZendFramework
Python
Mac
Network
Cisco
DLink
Juniper
Oauth
Server
Apache
Share
Unix
FreeBSD
Linux
WebDesign
Bootstrap
CSS
HTML
Wordpress
Search
搜尋:
寫了
5860316篇文章,獲得
23313次喜歡