黑马程序员——Java基础——String、StringBuffer

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

String

String对象的初始化

String类是对字符串事物的描述。该类定义了专门用于操作字符串的方法。

String s1 = "abc";

s1是一个类类型变量,"abc"是一个对象。字符串最大特点:一旦被初始化就不可以被改变。注意不能改变的是"abc"而不是s1的指向。

String s1="abc";

String s2=new String("abc");

S1在内存中有一个对象"abc",而s2在内存中有两个对象,一个是new String(),另一个是"abc"。



二、String的常见用法

1.获取StringBuffer

    1.1 获取字符串长度,也就是字符串中字符数

    int length();

    1.2 根据位置获取字符

    char charAt(int index);

    1.3 根据字符获取在字符中的位置

    int indexof(int ch) 返回的是ch在字符串中第一个出现的位置

    int indexof(int ch,int FromIndex) 从fromIndex指定位置开始,获取ch在字符串中出现的位置

    int indexof(String str); 返回的是str在字符串中第一个出现的位置

    int indexof(String str,int FromIndex) 从fromIndex指定位置开始,获取str在字符串中出现的位置反响索引一个字符出现的位置。

    int lastindexof(int ch) 返回的是ch在字符串中第一个出现的位置

    int lastindexof(int ch,int FromIndex) 从fromIndex指定位置开始,获取ch在字符串中出现的位置

    int lastindexof(String str); 返回的是str在字符串中第一个出现的位置

    int lastindexof(String str,int FromIndex) 从fromIndex指定位置开始,获取str在字符串中出现的位置

    1.4 获取字符串中的一部分字符串,也叫子串。

    String subString(int beginindex,intendindex) ;

    String subString(int beginindex)

2.判断

    2.1两个字符串是否相同

    boolean equals(Object obj)

    boolean equalsIgnoreCase(String str)

    2.2字符串中是否包含某个字符串

    boolean contains(String str)

    2.3两个字符串是否以指定字符串开头或结尾

    boolean Startswith(String);

    boolean endswith(String);

    2.4字符串是否为空

    boolean isEmpty();

3.字符串转换

    3.1将字符串变成字符串数组

    String[] split(String regex);

    3.2将字符串变成字符数组

    char[] toCharArray();

    3.1将字符串变成字节数组

    byte[] getBytes();

    3.4将字符串数组变成字符串

    构造函数 String(char[])

    String(char[],offset,count)将字符数组中的一部分转成字符串。

    静态函数 static String copyValueof(char[])

    static String copyValueof(char[],offset,count)将字符数组中的一部分转成字符串。

    3.5将字符串的字母大小写转换

    String toUppercase();大写

    String toUppercase();小写

    3.6将字符串的内容替换

    String repalce(char oldch,char newch);

    String repalce(String s1,String s2);

    3.7将字符串两端空格去掉

    String trim();

    3.8将字符串进行连接

    String concat(String);

4.比较

    compareTo();对两个字符串进行自然顺序的比较。小返回负数 等返回0 大返回正数

StringBuffer

一、概述

        StringBuffer是一个容器,字符串的组成原理就是通过该类实现的。StringBuffer可以对字符串内容进行增删改查等操作,很多方法和String相同。

 

二、特点

1、而且长度是可变化的。(数组是固定的)

        2、可以直接操作多个数据类型。(数组只能操作一个)

        3、最终会通过toString方法变成字符串。


 二、StringBuffer的常见用法

1.添加

     append(data)      将指定数据添加到已有数据的结尾处

     insert(位置,字符串)      将数据插入到指定位置

2.删除

     delete(start,end)       删除缓冲区中的数据,包含start不包含end

     deleteCharAt(ine index)        删除指定位置元素

     StringBuffer.delete(0,sb.length());


3.查找

char charAt(index);

int indexof(string)

int lastindexof(String);

4.修改

StringBuffer replace(start,end.String)

void setCharAt(index,char)

       setlength()设置长度

5.反转

StringBuffer reverse();

6.将缓冲区中的指定数据存储到字符数组中

void getChars(int srcBegin,int srcEnd,char[] dst,int dstbegin)


注:

在JDK1.5版本之后出现了StringBuilder。

StringBuffer是线程同步的。有锁。效率低

StringBuilder是线程不同步的。无锁。效率高

以后开发,建议使用StringBuilder。如遇多线程,使用StringBuffer或自己加锁。


    基本数据类型包装类 

        将基本数据类型封装成对象的好处,在于可以在对象中定义更多的功能方法操作该数据。基本数据类型对象包装类的最常见作用,就是用于基本数据类型和字符串类型之间做转换。下面我们来了解包装类的写法形式和常用方法。

 

一、基本数据类型对象包装类。

        byte               Byte

        short              Short

        int                Integer

        long               Long

        boolean            Boolean

        float              Float

        double             Double

        char               Character

 

二、基本数据类型转成字符串

        基本数据类型+" "

        基本数据类型.toString(基本数据类型值);

        如:Integer.toString(34);//将34整数变成"34"。

 

三、字符串转成基本数据类型。

         xxx a=Xxx.parseXxx(string);//必须传入对应类型的字符串。

        如   inta=Integer.parseInt("123");//静态

        booleanb=Boolean.parseBoolean("true");

        Integeri=new Integer("123");

        intnum=i.intValue();//跟上面的静态方式的结果一样,但这种属于对象调用方式。

注意:

        在使用时,Integer  x = null;上面的代码就会出现NullPointerException。

 

四、十进制转成其他进制。

使用方法:Integer.toBinaryString(int)

         toBinaryString();//2进制

         toHexString(); //8进制

         toOctalString();//16进制

 

五、其他进制转成十进制。

         parseInt(String,radix);

         如:int a= Intager.parseInt("3c",16);

JDK1.5版本以后出现的新特性:

Integer x=new Integer(4);

         等效于:Integer x=4;//自动装箱。

还可以直接进行运算:x=x+2;//x进行自动拆箱。变成了int类型。和2进行加法运算。再将和进行装箱赋给x。x的拆箱动作等效:x.intValue()。

 

六、示例

        Integer x=128;

        Integer y=128;

        x==y   (false)

        Integer m=127;

        Integer n=127;

        m==n ( true)

原因:

        因为m和n指向了同一个Integer对象。因为当数值在byte范围内,对于新特性,如果该数组已经存在,则不会再开辟新的空间。





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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值