竟然忘记看21世纪最大的流星雨,,代码啊代码.....
╮(╯▽╰)╭.继续正则表达式..
处理日期的类
● Date - 代表一个日期、时间。
还没有过时的构造器:
new Date(long) - long代表从某个时间开始(GMT1970-1-1 00:00:00)到现在过了多少ms。
把毫秒数转换成日期。
new Date()
Date
← →
long(从GMT1970-1-1 00:00:00到现在过了多少ms)
● Calendar - 代表一个日期、时间。
调用getInstance()方法来获取实例。
Calendar
→
Date : Calendar
set(年, 月 , 日 , 时 , 分 , 秒)
set(Field , val) : 直接设置某个字段的值。
add(int field, int amount)与roll(int field, int amount) :对某个字段添加。
add方法有如下规则:
当被修改的字段超过了它允许的范围时,它会发生“进位”。
Java的正则表达式功能并不强。
所谓正则表达式, 就是一个可以匹配N个字符串的字符串模板。
正则表达式它是一个非常强大的字符串模板。
在一般命令行里,经常使用a*这种形式来代表在字符串模板。
String里的的如下方法与正则表达式有关:
matches(String regex) - 判断字符串是否能匹配【正则表达式模板】。
replaceAll(String regex, String replacement)
replaceFirst(String regex, String replacement)
split(String regex) -
正在表达式所支持通配符:
"abc"
—— 它也是正则表示式,只是匹配abc.
"a{2,4}bc" —— abc 不匹配。
aabc 匹配。
aaaabc 匹配。
\t
- 制表符。
\n
- 换行。
\r
- 回车
.
- 可匹配一个任意的字符。
\s - 代表一个任意的空白(空格、Tab)
space
\S - 代表一个任意的非空白
\d - 代表一个任意的数字
digital
\D - 代表一个任意的非数字
\w - 代表一个单词字符。
word
\W -
代表一个任意的非单词字符。
特殊字符(实际用的要转义)
( )
[ ]
{ }
\
?
*
+
^
—— 代表一行的开头。
$
—— 代表一行的结尾。
|
方括号表达式
枚举 :
[ax中] - 代表a或x或 中 其中任意一个字符。
范围 :
[a-f] - 代表a、b、c、d、e、f其中的任意一个字符。
枚举与范围共存 : [a-f5-7] - 代表a、b、c、d、e、f、5、6、7其中的任意一个字符。
表示求否:[^a-f] :只要不是a、b、c、d、e、f字符的任意一个字符即可。
表示求交:[a-g&&[^b-d]] :只要不是a、e、f、g字符的任意一个字符即可。
表示出现次数的“副词”
?
表示它前面的东西可出现0~1次。
*
表示它前面的东西可出现0~N次。
+
表示它前面的东西可出现1~N次。
{n,m}
表示它前面的东西可出现n~m次。
{,m}
表示它前面的东西最多可出现m次。
{n,}
表示它前面的东西最少要出现n次。
{n}
表示它前面的东西必须要出现n次。
P259有详细介绍。
除此之外,Java专门提供了两个工具类:
Pattern - 它就是代表正则表达式模板。
Matcher - 代表一个匹配工具类。
find() - 查找下一个匹配正则表达式的子串。
group() - 取出上一次与正则表达式的子串。
如果你想正则表达式一些更复杂的功能,可能还要用Pattern和Matcher。
比如我们要搜索出一段字符串中特定的内容。
蜘蛛
任何一个网页开始, 有一些超级连接
(1) 向指定网页发送请求。
(2) 获取该网页响应内容。
(3) 提取该网页中所有邮件地址——通过正则表达式。
(4) 再次通过正则表达式提取该网页中所有超级链接,
重新执行(1)、(2)、(3)、(4)。
——直到所有网页都被访问过一次。
希望一个程序,可以“自适应”所有用户环境。
Internationalization 20个字母 - 简称
I18N
非常简单 —— 本质就是“查找、替换”
资源文件 - 负责为程序 提供 国际化消息。
资源文件的文件名必须满足 _语言代码_国家代码.properties
如果资源文件中包含非西欧字符,需要使用native2ascii工具类处理这个文件。
native2ascii 要处理的文件 生成的新文件名
Locale - 代表语言、国家环境。
ResourceBundle - 负责加载指定资源文件,而且帮我们进行查找、替换
MessageFormat
- 负责为消息中的占位符填充参数值。
format(String pattern, Object... arguments)
该方法中arguments参数就负责依次替换每个占位符。
国际化的步骤:
(1)提供资源文件。 负责为程序 提供 国际化消息。
(2)使用ResourceBundle加载国际化资源文件。
getBundle(baseName , 语言代码_国家代码);
搜索资源文件的顺序:
A。 base_语言代码_国家代码.properties.
B。 baseName_语言代码.propertie
C。 baseName.properties
那就搞不了。
(3)调用ResourceBundle的getMessage()方法输出国际化消息。
本质就是: 让ResourceBundle帮我们进行查找、替换。
正则表达式(Regular Expression , RegEx),从JDK 1.4才加入的。
===============================
国际化