与运行环境交互(随笔)

//前面没写项目分析的时候发现自己的基础有很多欠缺,所有就又回来补基础了
//String类的正则表达式支持
boolean matches(String regex)//:判断该字符串是否匹配指定的正则表达式
//正则表达式:regex正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本
String replaceAll(String regex,String replacement): //返回该字符串中所有匹配正则表达式的子串体换成replace后的新字符串
String replaceFirst(String regex,String	replacement) //:返回该字符串中第一个匹配正则表达式的子串替换成replacement后的新字符串
String [] split(String regex) //:根据给定正则表达式的拆分该字符串后得到的字符串数组

//正则表达式所支持的合法字符
//x 字符:x(x可以表示任何合法的字符) /0mnn:8进制数0mnn所表示的字符
// \xhh:16进制0xhh所表示的字符
// \uhhhh: 16进制值0xhhhh所表示的UNICODE字符
//  \t:制表符('\u0009')
//  \n: 新行(换行)符('\u000A')
//  \r:回车符('\u000D')	
//   \f: 换页符('\u000C')
//  \a:报警(bell)符 ('\u0007')
//  \e: Escape符('\u001B')
//  \cx: 对应的空字符。例如,\cM :匹配Ctrl-M. x值必须为A-Z或a-z之一


//正则表达式中的特殊字符
// $:匹配一行的结尾。要匹配$字符本身,请使用\$。
// ^:匹配一行的开头。要匹配^字符本身,请使用\^。
// (): 标记子表达式的开始和结束位置,要匹配这些字符,请使用\(和\).
//  []:用于确定中括号表达式的开始和结束位置,要匹配这些字符,使用\[和\]
// {}:用于标记子表达式的出现频度,要匹配这些字符,请使用\{和\}.
//  *:指定前面子表达式可以出现零次或多次。要匹配*字符,使用 \*.
// + :指定前面子表达式可以出现一次或多次。要匹配+字符,请使用\+。
// ?:指定前面的子表达式可以出现一次或多次。要匹配?字符,使用\?.
// .:匹配除换行符\n之外的任何单字符。要匹配. 使用\. 。
//  \用于转义下一个字符,或指定八进制,十六进制字符。如果需匹配\,请用\\
// |: 指定两项之间任选一项,如果要匹配|,请使用\|。




//预定义字符
// . :可以匹配任何字符
// \d匹配0-9的所有数字
// \D:匹配非数字。
// \s:匹配所有空白字符,包括空格,制表符,回车符,换页符,换行符等。
// \S:匹配所有非空白字符。
// \w: 匹配所有单词字符,包括0-9所有数字,26个英文字母和下划线(_).
// \W:匹配所有非单词字符。

//使用正则表达式

//一旦在程序中定义了正则表达式之后,就可以使用Pattern和Matcher来使用正则表达式。
//Pattern对象是正则表达式的编译后在内存中的表示形式,因此,正则表达式字符串必须先被编译为Pttern对象,然后再利用该Pattern对象创建对应的Matcher对象。执行匹配所涉及的状态保留在Matcher对象中,多个Matcher对象可共享同一个Pattern对象。

//java程序的国际化思路是将程序中的标签,提示等信息放在资源文件中,程序需要自持哪国语言就使用支持哪国语言的文件。
//资源文件是Key-value对,每个资源文件中key是不变的,但value则随不同国家,语言改变。
//简言之就是一套key对应的是多套value值只不过不同国家对应的value值是不同的/
//java程序国际化主要通过如下三个类完成:
// -java.util.ResourceBundle:用于加载一个国家,语言资源包,
// -java.util.Locale:用于封装一个特定的国家/区域,语言环境。
// -java.text.MessageFormat:用于格式化带占位符字符串。
//使用类文件代替资源文件
//使用java文件来代替资源文件的java文件必须满足如下条件:
//-类的名字必须为baseName_language_country,这与属性文件的命名相似
//-该类必须继承ListResourceBundle,并重写getContents方法,该方法返回Object数组,该数组的每一项都是key-value对。

//处理带占位符的消息
//此时需要使用MessagFormat类,该类包含一个有用的静态方法:
// -fromat(String pattern,Object...values:返回后面的多个参数值填充前面的pattern字符串,其中pattern字符串不是正则表达式,而是一个带占位符的字符串。

//使用NumberFormat格式化
//NumberFormat和DateFormat都包含了format和parse方法,其中format用于将数值,日期格式化成字符串,parse用于将字符串解析成数值,日期。
//NumberFormat也是一个抽象基类,所以无法通过它的构造器来创建NumberFormat对象,它提供了如下几个工厂方法来得到NumberFormat对象:
//-getCurrencyInstance:返回默认Locale 的货币格式器。
//-getIntegerInstance:返回默认的Local的整数格式器。也可以在调用该方法传入指定Local,则获取指定Locale的整数格式器。
//-getNumberInstance:返回默认Local的通用数值格式器。也可以在调用方法传入指定Locale,则获取指定Locale的通用数值格式器。
//-getParcenInstance:返回默认Locale的百分数格式器。也可以在调用该方法传入指定Locale,则获取指定Locale的百分数格式器。


//使用DateFormat
//与NumberFormat相似的是,DateFormat也是一个抽象类,它也提供了几个工厂方法用于获取DateFormat对象:
//-getDateInstance:返回一个日期格式器,它个化后的字符串只有日期,没有时间。该方法可以传入多个参数,用于指定日期样式和Locale等参数。如果不指定这些参数,则使用默认参数
//-getTimeInstance:返回一个时间格式器,它格式化以后的字符只有时间,没有日期。该方法可以传入多个参数,用于指定时间样式和Locale等参数。如果不指定这些参数,则使用默认参数。
//-getDateTimeInstance:返回一个日期,时间格式器,它格式化后的字符串既有日期,也有时间。该方法可以传入多个参数,用于指定日期样式,时间样式和Locale等参数。如果不指定这些参数,则使用默认参数。

//使用SimpleDateFormat
// SimpleDateFormat是DateFormat的子类,正如它的名字所暗示的,它是”简单”的日期格式器。实际上SimpleDateFormat比DateFormat更简单,功能更强大。
//SimpleDateFormat可以非常灵活地输格式化Date,也可以非常灵活的解析各种格式的日期字符串。创建SimpleDateFormat对象时需要传入一个Pattern字符串,这个pattern不是正则表达式,而是一个日期模板字符串。


//java8新增的日期格式器
//java.time.format包下提供了一个DateTimeFormatter格式器类。
//为了使用DateTimeFormatter将日期,时间(LocalDate.LocalDateTime,LocalTime等实例)格式化为字符串,可通过如下两种方式:
// -调用DateTimeFormatter的format(TemporalAccessor temporal)方法执行格式化,其中LocalDate,LocalDateTime,LocalTime等类都是TemporalAccessor接口实现类。
// -调用LocalDate,LocalDateTime,LocalDateTime,LocalTime等日期,时间对象的format(DateTimeFormatter formatter)方法执行格式化。
//为了使用DateTimeFormatter将指定的字符串解析成日期,时间对象(LocalDate,LocalDateTime,LocalTime等实例),可通过如下日期,时间对象提供的parse(CharSequence text,DateTimeFormatter formatter)方法进行解析。














  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值