疯狂java ~~国庆之后..

竟然忘记看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方法有如下规则:
                  当被修改的字段超过了它允许的范围时,它会发生“进位”。
            

正则表达式(Regular Expression , RegEx),从JDK 1.4才加入的。
      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帮我们进行查找、替换。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值