Java Scaner類詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
Java.util.Scanner是Java5.0的新特征,主要功能是簡化文本掃描。這個(gè)類最實(shí)用的地方表現(xiàn)在獲取控制臺輸入,其他的功能都很雞肋,盡管Java API文檔中列舉了大量的API方法,但是都不怎么地。
一、掃描控制臺輸入
這個(gè)例子是常常會(huì)用到,但是如果沒有Scanner,你寫寫就知道多難受了。
當(dāng)通過new Scanner(System.in)創(chuàng)建一個(gè)Scanner,控制臺會(huì)一直等待輸入,直到敲回車鍵結(jié)束,把所輸入的內(nèi)容傳給Scanner,作為掃描對象。如果要獲取輸入的內(nèi)容,則只需要調(diào)用Scanner的nextLine()方法即可。
/** * 掃描控制臺輸入 * */ public class TestScanner { public static void main(String[] args) { Scanner s = new Scanner(System.in); System.out.println("請輸入字符串:"); while (true) { String line = s.nextLine(); if (line.equals("exit")) break; System.out.println(">>>" + line); } } }
請輸入字符串:
234
>>>234
wer
>>>wer
bye
>>>bye
exit
Process finished with exit code 0
二、如果說Scanner使用簡便,不如說Scanner的構(gòu)造器支持多種方式,構(gòu)建Scanner的對象很方便。
可以從字符串(Readable)、輸入流、文件等等來直接構(gòu)建Scanner對象,有了Scanner了,就可以逐段(根據(jù)正則分隔式)來掃描整個(gè)文本,并對掃描后的結(jié)果做想要的處理。
三、Scanner默認(rèn)使用空格作為分割符來分隔文本,但允許你指定新的分隔符
使用默認(rèn)的空格分隔符:
public static void main(String[] args) throws FileNotFoundException { Scanner s = new Scanner("123 asdf sd 45 789 sdf asdfl,sdf.sdfl,asdf ......asdfkl las"); // s.useDelimiter(" |,|\\."); while (s.hasNext()) { System.out.println(s.next()); } }
123
asdf
sd
45
789
sdf
asdfl,sdf.sdfl,asdf
......asdfkl
las
Process finished with exit code 0
將注釋行去掉,使用空格或逗號或點(diǎn)號作為分隔符,輸出結(jié)果如下:
123
asdf
sd
45
789
sdf
asdfl
sdf
sdfl
asdf
asdfkl
las
Process finished with exit code 0
四、相對實(shí)用的API
下面這幾個(gè)相對實(shí)用:
delimiter()
返回此 Scanner 當(dāng)前正在用于匹配分隔符的 Pattern。
hasNext()
判斷掃描器中當(dāng)前掃描位置后是否還存在下一段。(原APIDoc的注釋很扯淡)
hasNextLine()
如果在此掃描器的輸入中存在另一行,則返回 true。
next()
查找并返回來自此掃描器的下一個(gè)完整標(biāo)記。
nextLine()
此掃描器執(zhí)行當(dāng)前行,并返回跳過的輸入信息。
以上所述是小編給大家介紹的Java Scaner類詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Spring模塊詳解之Spring ORM和Spring Transaction詳解
Spring ORM 是 Spring 框架的模塊之一,旨在簡化與 JPA、Hibernate、JDO 等 ORM 工具的集成,通過提供統(tǒng)一的 API 和模板類,如 HibernateTemplate 和 JpaTemplate,Spring ORM 使開發(fā)者可以更便捷地執(zhí)行數(shù)據(jù)庫操作,感興趣的朋友跟隨小編一起看看吧2024-09-09Spring Security靈活的PasswordEncoder加密方式解析
這篇文章主要介紹了Spring Security靈活的PasswordEncoder加密方式解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Mybatis Plus 增刪改查的實(shí)現(xiàn)(小白教程)
本文主要介紹了Mybatis Plus 增刪改查,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09RedisTemplate中opsForValue和opsForList方法的使用詳解
這篇文章主要介紹了RedisTemplate中opsForValue和opsForList方法的使用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Java中PageHelper分頁后對list操作導(dǎo)致分頁無效
在項(xiàng)目中使用分頁插件的時(shí)候發(fā)現(xiàn)PageHelper插件失效了,本文就來介紹一下Java中PageHelper分頁后對list操作導(dǎo)致分頁無效的解決方法,感興趣的可以了解一下2021-05-05ShardingSphere如何進(jìn)行sql重寫示例詳解
這篇文章主要為大家介紹了ShardingSphere如何進(jìn)行sql重寫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09通過反射實(shí)現(xiàn)Java下的委托機(jī)制代碼詳解
這篇文章主要介紹了通過反射實(shí)現(xiàn)Java下的委托機(jī)制代碼詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12java發(fā)送form-data請求實(shí)現(xiàn)文件上傳的示例代碼
最近做一個(gè)需求,需要請求第三方接口上傳文件,該請求類型是form-data請求,本文就來介紹一下java發(fā)送form-data請求實(shí)現(xiàn)文件上傳的示例代碼,感興趣的可以了解一下2023-12-12