zoukankan      html  css  js  c++  java
  • Java输入输出常用类Scanner

    Scaner类,使用获取键盘输入。

    public boolean DemoTest(){
    
    Scanner input = new Scanner(System.in);
    
    System.out.print("请输入学生姓名");
    
    String name = input.next();
    
    int score = 0;
    
    double sum =0;
    
    double average = 0;
    
    for(int i =0; i<5 ;i++){
    
    System.out.print("请输入第["+(i+1)+"]门课程成绩");
    
    score = input.nextInt();
    
    sum += score;
    
    }
    
    average = sum /5;
    
    System.out.println("学生"+name+"的平均成绩为"+average);
    
    return true;
    
    }

    使用JUnit3的测试代码。

    /**

    *

    */

    package com.ch01;

    import ch01.ScannerTest;

    import junit.framework.Assert;

    import junit.framework.TestCase;

    /**

    * @author Xu Dongdong@cs.hust

    *

    */

    public class ScannerTestCase extends TestCase {

    public void testch01Scanner(){

    ScannerTest input = new ScannerTest();

    Assert.assertEquals(true, input.DemoTest());

    }

    }

    Scanner详解

    java.lang.Object -->>> java.util.Scanner

    所有已实现的接口-->>>Iterator<String>

    一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。

    Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。

    例如,以下代码使用户能够从 System.in 中读取一个数:

    Scanner sc = new Scanner(System.in);

    int i = sc.nextInt();

    再看一个例子,以下代码使 long 类型可以通过 myNumbers 文件中的项分配:

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

    while (sc.hasNextLong()) {

    long aLong = sc.nextLong();

    }

    扫描器还可以使用不同于空白的分隔符。下面是从一个字符串读取若干项的例子:

    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(); 输出为:

    1

    2

    red

    blue

    以下代码使用正则表达式同时解析所有的 4 个标记,并可以产生与上例相同的输出结果:

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

    Scanner s = new Scanner(input);

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

    MatchResult result = s.match();

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

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

    s.close();

    扫描器所使用的默认空白分隔符通过 Character.isWhitespace 来识别。不管以前是否更改,reset() 方法将把扫描器分隔符的值重置为默认空白分隔符。

  • 相关阅读:
    VS2005中的WebApplication和WebSite
    CodeFile 与 CodeBehind 的区别
    vs2005默认浏览器(IE)灵异事件
    杭电OJ第4252题 A Famous City
    湘大OJ第1490题 Generating Random Numbers
    中南OJ 2012年8月月赛 B题 Barricade
    中南OJ 2012年8月月赛 H题 Happy watering
    杭电OJ第4245题 A Famous Music Composer
    中南OJ 2012年8月月赛 I题 Imagination
    杭电OJ第4256题 The Famous Clock
  • 原文地址:https://www.cnblogs.com/xuddong/p/3152075.html
Copyright © 2011-2022 走看看