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
API Blueprint
Chrome
Database
MySQL
DataStructure
Docker
Editor
Vim
Firefox
Git
GitLab
Google API
Hadoop
HTTP
Language
Go
Java
JavaScript
jQuery
jQueryChart
Node.js
Vue
Vue-CLI
PHP
Laravel
Lumen
ZendFramework
Python
Mac
Network
Cisco
DLink
Juniper
Oauth
Server
Apache
Share
Unix
FreeBSD
Linux
WebDesign
Bootstrap
CSS
HTML
Wordpress
Search
搜尋關鍵字:
寫了
5860316篇文章,獲得
23313次喜歡