Scanner类(util包)

Scanner类是一个不可变的类,实现了迭代器接口。一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。

  • 扫描用户输入
 // 这段代码只做个用法示例,按字符类型输入
Scanner sc =new Scanner(System.in);
System.out.println("请输入:");
if(sc.hasNext()){
//(不能得到带有空格的字符串)
String s = sc.next(); // String 类型
System.out.println("字符串:"+ s);
}
if(sc.hasNextInt()){ // int 类型
int s = sc.nextInt();
System.out.println("整型:" + s);
}
if(sc.hasNextLong()){ // long 类型
long s = sc.nextLong();
System.out.println("长整型:" + s);
}
if(sc.hasNextFloat()){ // float 类型
float s = sc.nextFloat();
System.out.println("浮点型:" + s);
}
if(sc.hasNextDouble()){ // double 类型
double s = sc.nextDouble();
System.out.println("双精度型:" + s);
}
if(sc.hasNextLine()){ // String 类型
String s = sc.nextLine();
System.out.println("整行字符串:" + s);
}
if(sc.hasNextBoolean()){ // boolean 类型
boolean s = sc.nextBoolean();
System.out.println("布尔类型:" + s);
}
System.out.println("-------结束-----");
  • 扫描文件里的数据

    Scanner sc = new Scanner(new File("E:\\zz.txt"));

  • 通过输入流获取

 Scanner s = new Scanner(new FileInputStream("E:\\zz.txt")); // 扫描文件输入流中的数据
/* while(s.next().equals("123")){
System.out.println(s.next()); // 打印"123"后一个字符串
}*/
while (s.hasNext(Pattern.compile("\\d+"))){
System.out.println(s.next()); // 打印匹配到的字符串
}
  • 使用正则解析字符串
 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();

System类(lang包)

System也是一个不可变类,是一些与系统相关的属性和方法且都是静态的。包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 一种加载文件和库的方法。

// 相关属性
System.err.println("System.err 标准错误流");
System.out.println("System.out 标准输出流");
System.out.println("System.in 标准输入流"); // 相关方法
String [] s = {"ab", "cd", "ef", "gh"};
String [] s1 = new String[6];
System.arraycopy(s,0, s1,2,4);
System.out.println(Arrays.toString(s)); // [ab, cd, ef, gh]
System.out.println(Arrays.toString(s1)); // [null, null, ab, cd, ef, gh] System.out.println(System.getenv());// 返回当前系统环境的不可修改的字符串映射视图(Map<String,String>类型)
System.out.println(System.getenv("Java_home")); // G:\Java\jdk1.8.0_161 获取指定环境变量的值
// 以下方法还有对应的set方法
System.out.println(System.getProperties()); // 返回当前的系统相关属性。
System.out.println(System.getProperty("os.name")); // 返回当前操作系统的名称 Windows 10 System.out.println(System.nanoTime());// 返回正在运行的JVM的高分辨率时间源的当前值(以纳秒为单位)
System.out.println(System.currentTimeMillis()); // 返回当前时间(以毫秒为单位) System.out.println("====="+System.lineSeparator()); // 返回与系统相关的行分隔符字符串 System.load("C:\\Drivers\\Audio.Realtek\\HDA\\New\\AERTAC64.dll"); // 指定到文件
System.loadLibrary("lib"); // 底层实现 Runtime.getRuntime().loadLibrary(name)
System.exit(0); // 终止当前运行的Java虚拟机,非 0 的状态码表示异常终止
System.gc(); // 运行垃圾回收器

实际上out,err 的就是PrintStream类型的输出流, in是InputStream类型输入流

 System.out.println("This is a test");
System.err.println("print to console");
try {
byte[] b = new byte[1024];
System.setIn(new FileInputStream("E:\\test1.txt"));
int len = System.in.read(b);
System.out.println("file context: "+ new String(b, 0, len)); // 打印test1.txt内容 System.setErr(new PrintStream("E:\\test2.txt"));
System.setOut(new PrintStream("E:\\test3.txt"));
} catch (IOException e) {
e.printStackTrace();
}
System.err.println("input to test2.txt"); // 内容输出到test2.txt 文件
System.out.println("input to test3.txt"); // 内容输出到test3.txt 文件

Java_Scanner和System类的更多相关文章

  1. java中的System类

    System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成员变 ...

  2. System类和Random类

    System类 成员方法: public static void gc():运行垃圾回收器 public static void exit(int status):退出垃圾回收器 public sta ...

  3. Java api 入门教程 之 JAVA的SYSTEM类

    System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成员变 ...

  4. System类

    System类是一些与系统相关属性和方法的集合,而且System类中所有的属性都是静态的,要想引用这些属性和方法,直接使用System类调用即可. //======================== ...

  5. java 的SYSTEM类【转】

    java 的SYSTEM类[转] Posted on 2009-12-03 16:46 火之光 阅读(728) 评论(0) 编辑 收藏 System类代表系统,系统级的很多属性和控制方法都放置在该类的 ...

  6. java 14 -5 System类

    System类包含一些有用的类字段和方法.它不能被实例化. 方法: 1.public static void gc():运行垃圾回收器. 2.public static void exit(int s ...

  7. System类及其常用函数

    System 类包含一些有用的类字段和方法.它不能被实例化. 常用方法: 1.static void arraycopy(Object src, int srcPos, Object dest, in ...

  8. Java API —— System类

    1.System类概述         System 类包含一些有用的类字段和方法.它不能被实例化.  2.成员方法         public static void gc():运行垃圾回收器   ...

  9. Java System类看到的一点小记

    System类 位置java.lang包中 是final类,不能被继承,不能被修改 ,不能被实例化 private System(){}私有的构造函数,不允许被其他对象进行实例化 public fin ...

随机推荐

  1. MySQL 字符串 分割 多列

    mysql如何进行以,分割的字符串的拆分 - 我有一个梦想 - CSDN博客https://blog.csdn.net/u012009613/article/details/52770567 mysq ...

  2. Jquery2--属性相关的操作

    知识点总结 1.属性 属性(如果你的选择器选出了多个对象,那么默认只会返回出第一个属性). attr(属性名|属性值) - 一个参数是获取属性的值,两个参数是设置属性值 - 点击加载图片示例 remo ...

  3. SpringBoot返回date日期格式化,解决返回为TIMESTAMP时间戳格式或8小时时间差

    问题描述 在Spring Boot项目中,使用@RestController注解,返回的java对象中若含有date类型的属性,则默认输出为TIMESTAMP时间戳格式 ,如下所示: 解决方案    ...

  4. Python面试知识点小结

    一.Python基础 1.Python语言特性: 动态型(运行期确定类型,静态型是编译型确定类型),强类型(不发生隐式转换,弱类型,如PHP,JavaScript就会发生隐患式转换) 2.Python ...

  5. springdata 动态查询 是用来查询的 仅提供查询功能

    springdata 动态查询 是用来查询的 仅提供查询功能

  6. 自己实现ArrayList与LinkedList类

    ArrayList与LinkedList的底层实现 ArrayList内部由数组实现,LinkedList内部由链表实现. 自己动手实现ArrayList与LinkedList中一些常用方法 Arra ...

  7. 安全工具acunetix使用

    今天来主要介绍了安全测试工具AWVS(acunetix web vulnerability scanner)的使用 1)  安装包的下载地址:https://github.com/jiyanjiao/ ...

  8. Flask 框架介绍

    FLASK 框架 框架介绍 简单来说: 小 扩展性极强 官方文档 点这里 Flask 和 Django 的区别 Django 无socke,依赖第三方模块wsgi 路由系统(CBV,FBV) 中间件, ...

  9. Java EE之表达式语言EL(上)

    1.了解表达式语言 表达式语言(EL)用于在不使用脚本.声明或者表达式的情况下,在JSP页面中渲染数据. EL曾是JSTL 1.0规范(与JSP 1.2)中的一部分,并且只可以用作JSTL标签的特性. ...

  10. linux线程(一)

    线程的优先级无法保障线程的执行次序.只不过优先级高的线程获取 CPU 资源的概率大一点而已. 线程相关函数(1)-pthread_create(), pthread_join(), pthread_e ...