[疯狂Java]基础类库:命令行参数、Scanner
来源:互联网 发布:hash算法详解 编辑:程序博客网 时间:2024/06/17 03:09
1. Java命令行参数:
1) 即main方法的参数String[] args;
2) 这里就只声明三点:
1) 命令行参数是从程序名称之后开始算的:java JavaApplication arg1 arg2 arg3 ...
2) args[0]是第一个参数arg1,而并非程序名JavaApplication;
3) 命令行参数是用空格作为分隔符的,如果参数本身是包含空格的,则该参数应该用双引号""引起来,避免其中的空格被当做参数分隔符!!
2. Scanner:
1) 是一种基于正则表达式的文本扫描器,可以扫描文本中的字符串(模式)、数字等;
2) 它是一种高级处理流,可以包装文件、键盘输入流、字符串等,对这些节点中的文本流数据进行解析;
3) 构造器:
i. 通用版本:Scanner(InputStream | File | Path source[, Charset cs]);
ii. 分别重载了InputStream(键盘输入流就用这种)、File、Path,并且可以选择性指定字符集(毕竟像文件这种使用的字符集可以多种多样,容易产生乱码问题);
iii. 还有一个String版本的:Scanner(String source); // String就没有字符集这个选项,因为String肯定是Java程序内的数据,Java程序范围之内肯定都是Java自己的Unicode编码,因此没有Charset这个参数重载版本;
4) 解析普通字符串:
i. 解析的时候默认使用空白符(空格、制表、换行)作为字符串的分隔符(如果输入的是"abc def",那么也会被分成两个字符串"abc和def"!!一定要注意了;
ii. 解析方法:
a. boolean hasNext(); // 是否有下一个字符串,基于分隔符的
b. String next(); // 获取下一个字符串并移动位置指针
!!所有的解析方法肯定都是先用hasNext判断是否能继续读取,然后再调用next读取下一个;
5) 自定义分隔符:
i. Scanner默认使用空白符分隔字符串,但是可以自定义这个分隔符;
ii. Scanner useDelimiter(String pattern); // 用一个正则表达式来作为分隔符
iii. 简单的例子比如:scan.useDelimiter("\n"); 就是只以换行符作为分隔符,那么hasNext和next读取的单位就是行了而不是普通字符串了;
6) 当然Scanner为了方便也提供了正行读取的解析法:
i. boolean hasNextLine(); // 是否有下一行
ii. String nextLine(); // 直接读取下一行
!!Scanner的所有读取都会抛弃分隔符,也就是说上面的方法读取之后都不包含空白符、换行符;
7) 解析数字:
i. boolean hasNextType(); // 是否有下一个type类型的数据
ii. type nextType(); // 读取下一个type类型的字符串并解析成type类型返回
!!这里type支持Java的所有基础类型(int、double、long等);
8) 使用:肯定是用一个while循环判断是否有下一个可读取的内容(hasNext),然后在循环体中循环调用next读取内容
while (scn.hasNext()) {type val = next();处理代码...}
- [疯狂Java]基础类库:命令行参数、Scanner
- Scanner读取命令行参数
- Java基础之Scanner类
- [疯狂Java]基础类库:String
- [疯狂Java]基础类库:StringBuilder/StringBuffer
- 《Java疯狂讲义-Chap7Java基础类库》
- 基础类库:Scanner类
- JAVA基础类库——使用Scanner获取键盘输入
- java基础/Scanner类/String类
- Java 基础5:Scanner 类读取文件
- Java语言基础之Scanner类小结
- Java语言基础之Scanner类
- Java基础Scanner和String类
- java基础--12.Scanner和String类
- Java基础之引用数据类型scanner类
- java基础Math/Scanner
- Java基础----Scanner
- Java基础:Scanner
- Hive基础(2): 数据类型、数据库、表、字段、交互式查询的基本操作
- Ubuntu 16.04下搭建 Android 开发环境 -JDK, Android Studio 安装
- 18款开源/商用的Linux服务器控制面板
- ashx文件获取$.ajax()方法发送的数据
- Android 设置背景边框
- [疯狂Java]基础类库:命令行参数、Scanner
- Minimum Path Sum
- LeetCode 3 : Longest Substring Without Repeating Characters ---- 不重复的子串
- Python执行系统命令的方法 os.system(),os.popen(),commands
- 2016 - PayPal商家集成常见技术问题 - 官方整理
- 按钮点击多次出现多个相同页面问题
- 深入JVM虚拟机(四) Java GC收集器
- Mysql系列(九) 单引号与反引号
- Effective cpp 读书笔记5