Java_Scanner和System类
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类的更多相关文章
- java中的System类
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成员变 ...
- System类和Random类
System类 成员方法: public static void gc():运行垃圾回收器 public static void exit(int status):退出垃圾回收器 public sta ...
- Java api 入门教程 之 JAVA的SYSTEM类
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成员变 ...
- System类
System类是一些与系统相关属性和方法的集合,而且System类中所有的属性都是静态的,要想引用这些属性和方法,直接使用System类调用即可. //======================== ...
- java 的SYSTEM类【转】
java 的SYSTEM类[转] Posted on 2009-12-03 16:46 火之光 阅读(728) 评论(0) 编辑 收藏 System类代表系统,系统级的很多属性和控制方法都放置在该类的 ...
- java 14 -5 System类
System类包含一些有用的类字段和方法.它不能被实例化. 方法: 1.public static void gc():运行垃圾回收器. 2.public static void exit(int s ...
- System类及其常用函数
System 类包含一些有用的类字段和方法.它不能被实例化. 常用方法: 1.static void arraycopy(Object src, int srcPos, Object dest, in ...
- Java API —— System类
1.System类概述 System 类包含一些有用的类字段和方法.它不能被实例化. 2.成员方法 public static void gc():运行垃圾回收器 ...
- Java System类看到的一点小记
System类 位置java.lang包中 是final类,不能被继承,不能被修改 ,不能被实例化 private System(){}私有的构造函数,不允许被其他对象进行实例化 public fin ...
随机推荐
- MySQL源码包编译安装
+++++++++++++++++++++++++++++++++++++++++++标题:MySQL数据库实力部署时间:2019年3月9日内容:MySQL源码包进行编译,然后部署MySQL单实例重点 ...
- powershell 函数, foreach中格式化
function testArg { $n = 1; if($args.Count -eq 0) { "No arg!" } else { $args | foreach {&qu ...
- 【ubuntu】修改php-fpm和nginx运行用户
(php)项目a是用test用户运行nginx和php-fpm是www-data用户运行(python)项目b是用test用户运行 项目a通过php函数exec调用python脚本的接口造成了没有权限 ...
- python之MRO和垃圾回收机制
一.MOR 1.C3算法简介 为了解决原来基于深度优先搜索算法不满足本地优先级,和单调性的问题. python2.3版本之后不管是新式类还是经典类,查找继承顺序都采用C3算法 2.算法原理 C3算法的 ...
- kubernetes-kubeadm自动生成的证书过期的解决方法
拉取kubernetes的源码: git clone https://github.com/kubernetes/kubernetes.git 切换版本: cd kubernetes &&am ...
- AutoMapper入门使用
AutoMapper入门使用 在应用开发的过程中,首先要了解整个系统中各个系统的组件的作用,然后了解系统的工作流(workflow),最后需要梳理一遍数据流(dataflow),而在整理数据流的过程中 ...
- LOJ2340 [WC2018] 州区划分 【FMT】【欧拉回路】
题目分析: 这题是WC的题??? 令 $g[S] = (\sum_{x \in S}w_x)^p$ $h[S] = g[S]$如果$S$不是欧拉回路 $d[S] = \frac{f[S]}{g[All ...
- Flask 模板系统
模板 基本数据类型 可以执行python语法,如:dict.get(), list['xx'] 比django 更加亲近于 python 传入函数 - django,自动执行 - flask,不自动执 ...
- Qt调用自己编译的libglog.a出现问题
我确定依据正确导入库后,依旧出现未定义的引用. undefined reference to _imp___ZN6google17InitGoogleLoggingEPKc 尝试过重新编译,调整编译参 ...
- Vue, React, AngularJS, Angular2 我们对流行JavaScript框架们的选择
转自<奇舞周刊>,好文章mark一下 分割线 一个有趣的事实是:IBM发表的2017年最值得学习的编程语言名单中,JavaScript榜上有名.这位IT巨头指出,JS在网站中惊人地达到94 ...