java輸入時(shí)如何通過回車(enter)來結(jié)束輸入
輸入時(shí)通過回車(enter)來結(jié)束輸入
在編寫java程序的時(shí)候,我們想通過輸入回車來完成這一行的輸入,這是一個(gè)非常常見的問題,但是如果我們是用Scanner ,然后通過nextInt()方法調(diào)用的時(shí)候,不會停止輸入,回打出一個(gè)空行,然后等著你繼續(xù)輸入下一個(gè)數(shù)字。
解決辦法
我們可以設(shè)置兩個(gè)Scanner 第一個(gè)以行為單位讀取數(shù)據(jù),這樣就相當(dāng)于是用回車(enter)當(dāng)作結(jié)束符,
然后把讀取到的字符串傳入第二個(gè)Scanner, 然后在進(jìn)行處理
ArrayList<Integer> arr = new ArrayList() ; System.out.println("Enter a space separated list of numbers:"); Scanner in = new Scanner(System.in); ? String line = in.nextLine(); ? Scanner in2 = new Scanner(line); ?? ? while(in2.hasNextInt()){ ? ? ?arr.add(in2.nextInt()); ?} ? System.out.println("The numbers were:"+arr.toString());
只需要把nextInt 或者h(yuǎn)asnextint等函數(shù)改成你所需要的函數(shù)名就可以實(shí)現(xiàn) 不同的輸入,但是是以回車(enter)為結(jié)尾了。
java回車結(jié)束輸入一行
題目
在論壇找到這種方法:
Scanner s =new Scanner(System.in); String str=""; do { str=s.nextLine(); if(s.hasNextLine()) break; }while(true); System.out.println(str);
經(jīng)實(shí)踐,此法不通:
需要兩個(gè)回車才能結(jié)束輸入。
發(fā)現(xiàn)該解法
Scanner s= new Scanner(System.in); String str=s.nextLine(); Scanner st=new Scanner(str); ArrayList a =new ArrayList(); while(st.hasNextInt()) a.add(st.nextInt()); System.out.println(a);
將字符串作為輸入流,空格為間隔符:
源碼:
this調(diào)用下面構(gòu)造函數(shù):
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringSecurity自定義AuthenticationProvider無法@Autowire的解決
這篇文章主要介紹了SpringSecurity自定義AuthenticationProvider無法@Autowire的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12深入了解SpringBoot中@ControllerAdvice的介紹及三種用法
這篇文章主要為大家詳細(xì)介紹了SpringBoot中@ControllerAdvice的介紹及三種用法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-02-02