首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

20天jvava(九)

2012-10-19 
20天jvava(9)corejava day04 - 字符串类String,StringBuffer类,StringBuilder类,正则表达式2011/07/27

20天jvava(9)
corejava day04 - 字符串类String,
                 StringBuffer类,
                 StringBuilder类,
                                       正则表达式
2011/07/27
=====================================================
1.字符串类String
   1)String类的定义:
     Java字符串就是Unicode字符序列,
     Java没有提供内置的字符串类型。
     JavaAPI提供了类java.lang.String
             用于操作字符串:
           public final class String{...}
     String 字符串 = char[] + 方法(toUpperCase(), charAt(),...)
   2)String的字面量
     String的字面量使用双引号的形式,
                 如:String str="abc";
     String字面量也是String的实例,
     Java利用字符串池在编译期优化来字符串字面量,
          字面量赋值尽可能从池中获得。
            如:"1"+"2"=="12"
         new String("123"+"abc") 在运行时只产生了2个对象,在编译器优化为1个字面量
              区分"1"+"hello"和new String("1"+"hello")
   3)String类的构造方法
     String():创建一个内容的字符串"",长度为0
     String(String value):
                    通过String指定字符串的内容
     String(char[] value):
                       通过char[]构造一个字符串
     String(byte[] bytes):
                     通过byte[]构造一个字符串
     String(byte[] bytes,
            String charsetName):
               按照指定的字符编码,由byte[]构造一个字符串
   4)String类的常用方法:
     boolean equals(String str):
                            判断两个字符串的内容是否相同
     int length():返回字符串的字符个数
     char charAt(int index):
                        返回字符串中index位置上的字符
     int indexOf(char ch[,int fromIndex]):
                 在字符串中检索字符的位置,未找到返回-1
     int indexOf(String str[,int fromIndex]):同上
     int lastIndexOf(...):
                         从字符串的末尾开始检索
     String substring(int beginIndex[,int endIndex]):
               返回[beginIndex,endIndex)范围内的子串
     String trim():去掉字符串前后的空白字符
     String toUpperCase():转换为大写字符
     String toLowerCase():转换为小写字符
     boolean startsWith(String prefix[,int offset]):
                      是否以前缀prefix开始
     boolean endsWith(String suffix):是否以后缀suffix结束
     String concat(String str):
     将字符串附加到当前字符串的末尾
     String[] split(String regex):
     依据参数regex将字符串分割到字符串数组中
     String replace(char ch1,char ch2):将ch1替换成ch2
     String replace(String str1,String str2):将str1替换成str2
     String replaceAll(String regex,String replacement):
                  替换字符串中所有的regex
     char[] toCharArray():将字符串转换为char[]
     课堂练习:
     a.输出一个字符串中一个字符的位置
     b.输出字符串"100+200=300"中的操作数
  5)String对象的不变性:
      对象内容永远不变,
      改变字符串内容总是生成一个的字符串对象
    
2.StringBuffer类
  1)StringBuffer类用于缓存字符串,
                               提高了操作字符串的效率
  2)构造方法:
     StringBuffer():
               建立一个新的新的缓存区,默认长度为16
     StringBuffer(int length):
                   建立一个长度为length的缓冲区
     StringBuffer(String str):
     建立初始内容为str的缓存区,
     并提供16个字符的空间供再次分配
  3)StringBuffer类的常用方法
    int length():返回缓冲区中字符的个数
    int capacity():返回缓冲区的容量,即大小
    StringBuffer类具有与String类相同的
      length、charAt、indexOf、
      lastIndexOf、substring方法
    StringBuffer append(String str):
                          向缓冲区添加新的字符串
    StringBuffer insert(int offset,String str):
                 在缓冲区offset位置插入字符串str
    StringBuffer replace(int start,int end,String str):
             替换字符串
3. StringBuilder类
   StringBuffer 和 StringBuilder API几乎一样!
   StringBuffer 是java早期提供的,速度稍慢,线程安全,优先使用
   StringBuilder 是Java5 以后提供的,速度快,非线程安全
                  
4.正则表达式
   1) 基本语法
              正则表达式用来描述特定的字符串模式,应用广泛
       .           表示任意一个字符
       [abc]       表示abc中的任意一个
       [^abc]      表示abc以外的任意一个
       [a-zA-Z]    介于a-zA-Z中的任意一个
       \s          空白符
       \S          非空白符
       \d          数字[0-9]
       \D          非数字[^0-9]
       \w          单词[a-zA-Z0-9]
       \W          非单词  [^a-zA-Z0-9]
       {m,n} 数词
       {n}
       {m,n}
       ? : {0,1}
       + : {1,}
       * : {0,}
       ^ 开头
       $ 结尾 
       | 或者
   2) 常用的正则表达式(邮编、身份证号、电子邮件、电话号码)
   邮政编码: ^[0-9][0-9][0-9][0-9][0-9][0-9]$
         ^[0-9]{6}$
         ^\d{6}$
        
用户名规则: ^\w{8,10}$
电话号:  +86 13912345678
        ^(\+86)?\s?\d{11}$
身份证号码: ^\d{15}(\d{2}[0-9xX])?$
一个点的坐标: ^\d+(,\s*|\s+)\d+$
          
  日期: 2011-01-30
       ^\d{4}-\d{2}-\d{2}$
       ^\d{4}(-\d{2}){2}$

  IP 地址: 192.168.0.2
          ^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$
          ^\d{1,3}(\.\d{1,3}){3}$
          ^(\d{1,3}\.){3}\d{1,3}$
   3) String 相关API(split、matches、replace、replaceAll)
 
 

热点排行