日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java utill scanner_(转)java.util.Scanner应用详解

發布時間:2023/12/8 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java utill scanner_(转)java.util.Scanner应用详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java.util.Scanner應用詳解

java.util.Scanner是Java5的新特征,主要功能是簡化文本掃描。這個類最實用的地方表現在獲取控制臺輸入,其他的功能都很雞肋,盡管Java API文檔中列舉了大量的API方法,但是都不怎么地。

一、掃描控制臺輸入

這個例子是常常會用到,但是如果沒有Scanner,你寫寫就知道多難受了。

當通過new Scanner(System.in)創建一個Scanner,控制臺會一直等待輸入,直到敲回車鍵結束,把所輸入的內容傳給Scanner,作為掃描對象。如果要獲取輸入的內容,則只需要調用Scanner的nextLine()方法即可。

/**

* 掃描控制臺輸入

*

* @author leizhimin 2009-7-24 11:24:47

*/

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的構造器支持多種方式,構建Scanner的對象很方便。

可以從字符串(Readable)、輸入流、文件等等來直接構建Scanner對象,有了Scanner了,就可以逐段(根據正則分隔式)來掃描整個文本,并對掃描后的結果做想要的處理。

三、Scanner默認使用空格作為分割符來分隔文本,但允許你指定新的分隔符

使用默認的空格分隔符:

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

將注釋行去掉,使用空格或逗號或點號作為分隔符,輸出結果如下:

123

asdf

sd

45

789

sdf

asdfl

sdf

sdfl

asdf

asdfkl

las

Process finished with exit code 0

四、一大堆API函數,實用的沒幾個

(很多API,注釋很讓人迷惑,幾乎毫無用處,這個類就這樣被糟蹋了,啟了很不錯的名字,實際上做的全是齷齪事)

下面這幾個相對實用:

delimiter()

返回此 Scanner 當前正在用于匹配分隔符的 Pattern。

hasNext()

判斷掃描器中當前掃描位置后是否還存在下一段。(原APIDoc的注釋很扯淡)

hasNextLine()

如果在此掃描器的輸入中存在另一行,則返回 true。

next()

查找并返回來自此掃描器的下一個完整標記。

nextLine()

此掃描器執行當前行,并返回跳過的輸入信息。

五、逐行掃描文件,并逐行輸出

看不到價值的掃描過程

public?static?void?main(String[] args)?throws?FileNotFoundException

{

InputStream in =?new?FileInputStream(new?File("C:\\AutoSubmit.java"));

Scanner s =?new?Scanner(in);

while(s.hasNextLine()){

System.out.println(s.nextLine());

}

}

package own;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStreamWriter;

import java.net.HttpURLConnection;

import java.net.ProtocolException;

import java.net.URL;

import com.verisign.uuid.UUID;

/**

* ��?������??��?�?��?������?�?����??�������?�?�

* @author wangpeng

*

*/

public class AutoSubmit {

/**

* @param args

* @throws Exception

*/

public static void main(String[] args) throws Exception {

...在此省略N行

Process finished with exit code 0

Java對字符串支持還是比較弱的,盡管Java一直在努力。

Java的確老勢已經下來了,越來越龐大臃腫,往昔的輝煌正成為Java前進路上的絆腳石,為了向后兼容,為了平穩的過度,不得不做很多痛苦的選擇。

如果Java能直接出Java III,完全拋棄現有的糟粕,全新設計語法和風格。Java也許會繼續輝煌下去。

自己寫了個控制臺輸入數組并獲取數組的例子:

import java.util.Arrays;

import java.util.Scanner;

public class Scanner02 {

public static void main(String[] args){

Scanner inScanner = new Scanner(System.in);

String string = inScanner.nextLine();

String[] sChar = string.split(",");

//String[] sChar = string.split(" "); //以空格作為分隔符

int[] nums = new int[sChar.length];

for(int i= 0;i

nums[i] = Integer.parseInt(sChar[i]);//string型轉換為int型

}

String nString = inScanner.nextLine(); //實現數據多行輸入

System.out.println(Arrays.toString(nums)); //輸出數組

System.out.println("n:"+Integer.parseInt(nString));

inScanner.close();

}

}

運行結果:

1,2,3,4,5

5

[1, 2, 3, 4, 5]

n:5

import java.util.Arrays;

import java.util.Scanner;

public class Scanner03 {

public static void main(String[] args) {

// TODO Auto-generated method stub

Scanner inScanner = new Scanner(System.in);

int[] nums = new int[5];

/*while(inScanner.hasNext()){

System.out.println(inScanner.nextInt());

}*/

for(int i=0;i<5;i++){ //利用循環來存儲數組元素

nums[i] = inScanner.nextInt();

}

System.out.println(Arrays.toString(nums));

inScanner.close();

}

}

打印結果:

1 2 3 4 5

[1, 2, 3, 4, 5]

總結

以上是生活随笔為你收集整理的java utill scanner_(转)java.util.Scanner应用详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。