茄子在线看片免费人成视频,午夜福利精品a在线观看,国产高清自产拍在线观看,久久综合久久狠狠综合

    <s id="ddbnn"></s>
  • <sub id="ddbnn"><ol id="ddbnn"></ol></sub>

  • <legend id="ddbnn"></legend><s id="ddbnn"></s>

    java.util.Scanner應(yīng)用詳解
    來源:易賢網(wǎng) 閱讀:1700 次 日期:2014-12-02 15:05:38
    溫馨提示:易賢網(wǎng)小編為您整理了“java.util.Scanner應(yīng)用詳解”,方便廣大網(wǎng)友查閱!

    java.util.Scanner獲取輸入的整數(shù),長整型,字符串等:

    代碼如下:

    /package com.color.program.ball;

    import java.util.Scanner;

    public class ScannerTest {

    public static void main(String[] args) {

    Scanner s = new Scanner(System.in);

    //receive string

    String str = s.next();

    //receive integer

    Integer i = s.nextInt();

    //receive double

    Double d = s.nextDouble();

    System.out.println(str+i+d);

    }

    }

    如用三元運算符判斷一個數(shù)是奇數(shù)還是偶數(shù):

    import java.util.Scanner;

    public class Ou {

    public static void main(String[] args) {

    System.out.println("請輸入一個整數(shù):");

    Scanner reader = new Scanner(System.in);

    long a = reader.nextLong();

    String str = (a%2 )==0 ? "偶數(shù)":"奇數(shù)";

    System.out.println("結(jié)果是:"+str);

    }

    }

    一、掃描控制臺輸入

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

    當(dāng)通過new Scanner(System.in)創(chuàng)建一個Scanner,控制臺會一直等待輸入,直到敲回車鍵結(jié)束,把所輸入的內(nèi)容傳給Scanner,作為掃描對象。如果要獲取輸入的內(nèi)容,則只需要調(diào)用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

    exitProcess finished with exit code 0

    先寫這里吧,有空再繼續(xù)完善。

    二、如果說Scanner使用簡便,不如說Scanner的構(gòu)造器支持多種方式,構(gòu)建Scanner的對象很方便。

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

    代碼如下:

    package test;

    import java.io.File;

    import java.io.FileNotFoundException;

    import java.util.Scanner;

    import java.util.regex.MatchResult;

    public class TestScanner {

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

    // 鍵盤輸入

    Scanner sc = new Scanner(System.in);

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

    System.out.println("---------------");

    // 文本掃描

    Scanner sc2 = new Scanner(new File("D://1.txt"));

    while (sc2.hasNextDouble()) {

    System.out.println(sc2.nextDouble());

    }

    System.out.println("---------------");

    // 正則解析

    String input = "1 fish 2 fish red fish blue fish";

    Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");

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

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

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

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

    s.close();

    System.out.println("---------------");

    // 正則-匹配組

    String input2 = "1 fish 2 fish red fish blue fish";

    Scanner s2 = new Scanner(input2);

    s2.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)");

    MatchResult result = s2.match();

    for (int i = 1; i <= result.groupCount(); i++)

    System.out.println(result.group(i));

    s.close();

    }

    }

    以下代碼使 long 類型可以通過 myNumbers 文件中的項分配:

    代碼如下:

    Scanner sc = new Scanner(new File("myNumbers"));

    while (sc.hasNextLong()) {

    long aLong = sc.nextLong();

    }

    三、Scanner默認(rèn)使用空格作為分割符來分隔文本,但允許你指定新的分隔符(支持正則表達(dá)式)

    使用默認(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

    lasProcess finished with exit code 0

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

    123

    asdf

    sd

    45

    789

    sdf

    asdfl

    sdf

    sdfl

    asdfasdfkllas

    Process finished with exit code 0

    再來個例子,根據(jù)pattern字符串來匹配

    代碼如下:

    package test;

    import java.util.Scanner;

    import java.util.regex.MatchResult;

    public class TestScanner2 {

    public static void main(String[] args) {

    String data = "\n" +

    "\n" +

    "\n" +

    "\n" +

    "[Next log section with different format]";

    Scanner s = new Scanner(data);

    String pattern = "(\\d+[.]\\d+[.]\\d+[.]\\d+)@(\\d{1,2}/\\d{1,2}/\\d{4})";

    while(s.hasNext(pattern)) {

    s.next(pattern);

    MatchResult mr = s.match();

    System.out.format("ip = %-15s, data= %10s\n", mr.group(1), mr.group(2));

    }

    }

    }

    useDelimiter(Pattern pattern)這個方法是Scanner中用于設(shè)置分隔符的,默認(rèn)情況下scanner分割符是空格,你這 個程序中就是用正則表達(dá)式來設(shè)置分隔符,"\\s*fish\\s*"前面的一個\\s*表示空格出現(xiàn)0次或多次接著出現(xiàn)fish接著出現(xiàn)0個或多個空 格,只要scanner掃描遇到的數(shù)據(jù)符合這個正則表達(dá)式,前面的就當(dāng)一個數(shù)據(jù)就可以用Scanner中的next()返回取得數(shù)據(jù)。

    代碼如下:

    //output

    ip = 127.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , data= 21/10/2005

    ip = 128.0.0.11&nbsp;&nbsp;&nbsp;&nbsp; , data=&nbsp; 3/11/2006

    ip = 129.132.111.111, data=&nbsp;&nbsp; 4/2/2007

    ip = 130.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; , data=&nbsp; 15/1/2008

    總結(jié):1)多種輸入,F(xiàn)ile,input,System.in,String等

    2)與正則結(jié)合使用

    3)實現(xiàn)了Iterator接口

    四、一大堆API函數(shù),實用的沒幾個

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

    下面這幾個相對實用:

    delimiter()

    返回此 Scanner 當(dāng)前正在用于匹配分隔符的 Pattern。

    hasNext()

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

    hasNextLine()

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

    next()

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

    nextLine()

    此掃描器執(zhí)行當(dāng)前行,并返回跳過的輸入信息。

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

    看不到價值的掃描過程

    代碼如下:

    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

    更多信息請查看IT技術(shù)專欄

    更多信息請查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機網(wǎng)站地址:java.util.Scanner應(yīng)用詳解
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

    2026上岸·考公考編培訓(xùn)報班

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    云南網(wǎng)警備案專用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報警專用圖標(biāo)