算法(4th ed)(51):基础——基础编程模型 3.9.4

阅读数:20 2019 年 10 月 30 日 07:03

算法(4th ed)(51):基础——基础编程模型 3.9.4

(输入输出:标准输入)

复制代码
public class Average
{
public static void main(String[] args)
{ // 取 StdIn 中所有数的平均值
double sum = 0.0;
int cnt = 0;
while (!StdIn.isEmpty())
{ // 读取一个数并计算累计之和
sum += StdIn.readDouble();
cnt++;
}
double avg = sum / cnt;
StdOut.printf("Average is %.5f\n", avg);
}
}
StdIn 的用例举例
复制代码
% java Average
1.23456
2.34567
3.45678
4.56789
<ctrl-d>
Average is 2.90123

我们的 StdIn 库从标准输入流中获取数据,这些数据可能为空也可能是一系列由空白字符分隔的值(空格、制表符、换行符等)。默认状态下系统会将标准输出定向到终端窗口——你输入的内容就是输入流(由 <ctrl-d><ctrl-z> 结束,取决于你使用的终端应用程序)。这些值可能是 String 或是 Java 的某种原始类型的数据。标准输入流最重要的特点是这些值会在你的程序读取它们之后消失。只要程序读取了一个值,它就不能回退并再次读取它。这个特点产生了一些限制,但它反映了一些输入设备的物理特性并简化了对这些设备的抽象。有了输入流模型,这个库中的静态方法大都是自文档化的(它们的签名即说明了它们的用途)。右侧列出了 StdIn 的一个用例。

表 1.1.16 详细说明了标准输入库中的静态方法的 API。

表 1.1.16 标准输入库中的静态方法的 API

Public class StdIn
    static boolean  isEmpty()如果输入流中没有剩余的值则返回 true,否则返回 false
    static     int  readInt()读取一个 int 类型的值
    static  double  readDouble()读取一个 double 类型的值
    static   float  readFloat()读取一个 float 类型的值
    static    long  readLong()读取一个 long 类型的值
    static boolean  readBoolean()读取一个 boolean 类型的值
    static    char  readChar()读取一个 char 类型的值
    static    byte  readByte()读取一个 byte 类型的值
    static  String  readString()读取一个 String 类型的值
    static boolean  hasNextLine()输入流中是否还有下一行
    static  String  readLine()读取该行的其余内容
    static  String  readAll()读取输入流中的其余内容

评论

发布