Java基本的程序结构设计 基本类型的输入输出

读取输入:

java.util.Scanner

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

了解:

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 来识别。

关于File的相对目录:

了解:

如果在创建一个File的时候,使用了相对目录,那么:

相对路径名必须使用来自其他路径名的信息进行解释。默认情况下,java.io 包中的类总是根据当前用户目录来分析相对路径名。此目录由系统属性 user.dir 指定,通常是 Java 虚拟机的调用目录。

也就是说相对于user.dir的目录。所以我们尽量不会使用相对目录,这里遇到了,所以标注下,了解下。

文本输出:

java.io.PrintWriter

向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。

这个类的作用是把内存中的对象,以格式化文本的方式,输出到流中。它的api如下:

java.io.PrintStream和java.io.PrintWriter的api基本一样,只不过一个是通过字节的方式来输出,一个是字符的方式,不过这都是内部实现上。

这两个类很少使用,因为System.out使用的是PrintStream,我们这里了解一下。

时间: 2024-10-10 05:22:13

Java基本的程序结构设计 基本类型的输入输出的相关文章

Java基本的程序结构设计 字符类型

字符型 从概念上讲,java的字符型就是unicode字符序列. 不可变: 一旦定义了一个字符串,就没有方法修改它.java没有提供修改字符串的方法,对于C程序来说,字符串相当于是个数组,你可以改变任何一个下标的值.但是Java不可以. 如果要对java字符串修改下标,只能新建一个字符串,然后通过substring和拼接来实现,这样一定程度上效率很低. 但是java设计者认为字符串修改操作很少,对于字符串的操作,大多是比较,和合并等操作.所以java设计者将字符串设置为不可变,然后实现了共享.

Java基本的程序结构设计 大数操作

大数操作 BigInteger 不可变的任意精度的整数.所有操作中,都以二进制补码形式表示 BigInteger(如 Java 的基本整数类型).BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法.另外,BigInteger 还提供以下运算:模算术.GCD 计算.质数测试.素数生成.位操作以及一些其他操作. 个人理解:可以理解为BigInteger内部维护了一个int数组,这个数组可以无限大.java在对BigInteger进

Java基本的程序结构设计 数组

声明数组: int[] a; int a[]; 两种方式.一般选择第一种,比较一目了然. 初始化,必须指定长度: int[] a = new int[10]; int[] a = {1,2,3}; 初始化: package com.zjf;   import java.util.Arrays;   import com.zjf.spring.mybatis.model.Person;   public class Test {      public static void main(Strin

Java基本的程序结构设计 控制流程

控制流程 java的控制流程和C和C++基本一致,只是不能使用goto语句,不过break语句可以带标签,实现从内层循环跳出的目的.标签可以放在for或者while前面.如下: package com.zjf;   import java.io.Console; import java.util.Scanner;   public class Test {      public static void main(String[] args) {       outer: for(int i=0

理解隐式类型、对象初始化程序和匿名类型

在C# 3.0中,几乎每个新特性都是为LINQ服务的.所以,本文将介绍下面几个在C# 3.0中引入的新特性: 自动实现的属性 隐式类型的局部变量 对象和集合初始化程序 隐式类型的数组 匿名类型 其实这几个特性都是比较容易理解的,对于这几个特性,编译器帮我们做了更多的事情(想想匿名方法和迭代器块),从而简化我们的代码. 自动实现的属性 在C# 3.0以前,当我们定义属性的时候,一般使用下面的代码 public class Book { private int _id; private string

Java EE应用程序的组件构成与EJB 的出现

1.Java EE应用程序的组件构成(分布式多层应用架构) Java EE应用程序由组件构成: 客户端组件与运行在服务器端的业务逻辑组件通信时,既可以直接访问,也可以通过Web层的组件访问,如下图: SSH架构在整个JavaEE架构中的位置: JavaEE组件经过部署之后,被安装到JavaEE服务器中.JavaEE服务器提供web容器和EJB容器.EJB容器管理EJB的运行:Web容器管理Servlet和JSP的运行. 2.Java EE应用开发与实施过程 在JAVA EE中,各种不同类型的模块

MySQL常用指令,java,php程序员,数据库工程师必备。程序员小冰常用资料整理

MySQL常用指令,java,php程序员,数据库工程师必备.程序员小冰常用资料整理 MySQL常用指令(备查) 最常用的显示命令: 1.显示数据库列表. show databases; 2.显示库中的数据表: use mysql; show tables; 3.显示数据表的结构: describe 表名; 4.建库: create database 库名; 5.建表: use 库名: create table 表名 (字段设定列表): 6.删库和删表: drop database 库名; dr

深入Java虚拟机(程序运行)

引子:打开黑匣子 心中有数 老实说,对于C++的整个编译运行过程,我并没有全面的了解,好几次被问住了,看来是汇编没有学好,但是在看完<深入Java虚拟机>之后,对于Java代码到运行的每一个细节,有了更全面的认识. 描述一下整体的流程:程序员根据Java API编写Java程序,各种类文件,用一个Java编译器编译Java程序为class文件,class文件通过一定的分发方式被Java虚拟机装载.连接.初始化,变成Java虚拟机方法区的Class类,然后被实例化为堆区的对象,随着虚拟机的执行,

Java内存管理-程序运行过程(一)

勿在流沙住高台,出来混迟早要还的. 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 相信在做Java开发的伙伴一定知道 JVM(Java Virtual Machine(Java虚拟机)!本系列会开启对JVM相关的知识的探索和总结,让我们一起踏入JVM的学习之旅中,去了解和发现更加精彩的Java世界! 正如奥古斯特·罗丹 说过:世界上不是缺少美,而是缺少发现美的眼睛.Java的世界也是如此! 本文地图: 1.什么是程序 在计算机领域当中,程序就是为了能够让计算机执行