黑马程序员——字符串

本文详细介绍了Java和Android开发中字符串操作的基础知识,包括字符串初始化、对象封装、比较、获取、判断、转换、比较、String类、StringBuffer类和StringBuilder类的使用,以及正则表达式的匹配、切割、替换等功能,并通过实例展示了如何在实际开发中灵活运用这些概念。
<a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>

字符串

        字符串初始化后不能改变,在常量池中。

        方法区:方法数据、静态数据、常量池

 

1、String类

       对字符串进行对象的封装

       注意:==和equals的区别

       例:

        String s1=”abc”;

        Stirng s2=newString(“abc”);

        s1==s2;(false)    s1.equals(s2);(true)

        “==”比较的是地址值、也就是对象

        “equals()”在String类中判断字符串内容相同,复写Object类中的equals()

        int hasCode()也是复写Object类中的hasCode()

        在Object类中比的是地址值

1.1、      获取

(1)   int  length() 字符串长度

(2)   int  indexOf(int ch)   ch在字符串中第一次出现位置(ch是ASCII码)

(3)   char charAt(int index)   index位置上的字符

(4)   String  substring(int beginIndex, int beginIndex)   截取子串

1.2、      判断

(1)   boolean  startsWith(str)

(2)   boolean  endsWith(str)

(3)   boolean  containsWith(str)

(4)   boolean  isEmpty()

1.3、      转换

(1)   字符数组——>字符串

构造函数 String (char[])

                 String(char[],offset,count)

 静态方法

                 S.copyValueOf(char[])

(2)   字节数组——>字符串

构造函数 String (byte[])

                 String(byte[],offset,count)

静态方法

                 S.copyValueOf(byte[])

(3)   字符串——>字符数组

        char[]  toCharArray()

(4)   字符串——>字节数组

        byte[]  getBytes()

(5)   基本数据——>字符串

        S.valueOf(基本数据)

1.4、      比较

int compareTo(str)   小返回负数,等返回0,大返回正数

 

2、 StringBuffer类(线程同步)

构造一个其中不带字符的字符串缓冲区,初始容量为16个字符。

特点:是一个容器

      是可变长度的

      可以对字符串内容修改

      缓冲区中可存任意类型的数据

      最终需要变成字符串

2.1       添加

StringBuffer  append(data)   在缓冲区尾部加数据

StringBuffer insert(index,data)   在指定位置加数据

2.2       删除

StringBuffer delete(start,end)   删除start到end-1范围的元素

StringBuffer  deleteChartAt(index)   删除指定位置元素

2.3       修改

StringBuffer replace(start,end,str)   将start到end-1替换成str

StringBuffer setCharAt(index,char)   替换index处的字符

2.4       查找(未找到返回-1)

int indexOf(str,fromIndex)   从指定位置查找字符串

int lastIndexOf(str,fromIndex)   从指定位置反向查找字符串

2.5          获子串

   String  substring(start,end)   获取start到end-1的子串

2.6          反转

   StringBuilder  reverse()   字符串反转

3、 StringBuilder类(线程非同布)

JDK1.5出现的,方法与StringBuffer一样,用于单线程

4、 正则表达

专门操作字符串,简化书写

组:小括号()表示,每次定义一个小括号就是一组,自动从1开始

\n捕获n组;拿前规则第一组”$1”

\d数字  \D非数字   \w全部   .任意

?一次或无   *零或多次   +一次或多次   {I,j}i到j次

4.1       匹配  (String类中matches(regex))

例:5-15位的QQ号码校验,0不开头,只能数字

String s=”1345345473”;

String reg=”[1-9][1-9]{4,14}”;

boolean b=s.matches(reg);

4.2        切割  (String类中split(regex))

例:按“.”切割字符串

String reg=”\\.”;

String[] arr=str.split(reg);

4.3       替换  (String类中replaceAll(regex))

例:我我我来来了了了了——>我来的

String s=””

String reg=”(.)\\1+”;

String s1=s.replaceAll(reg,”$1”)

 

4.4        获取

(1)   正则表达式封装成对象

(2)   对象关联要操作的字符串

(3)   获取正则表达式引擎

(4)   通过引擎对符合规则子串进行操作

例:

String reg=” [\w+@\w+\\.\w]”

Pattern p=Parttern.compile(reg)

Matcher m=p.matcher(str);   (m.matches(str))

boolean b=m.find();

String s=m.group();

 




 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值