java基础11

Java中常见的字符串操作类【String】

1.String类如何创建对象,有哪些常用方法?

    1.String类--不可变的字符串操作类

    String类--java的jdk提供好的开发类。【java.lang包不用import】
    String类是使用final修饰符修饰的,说明它没有子类,不可被继承。

    String类创建对象--构造方法

       1.String()--创建一个空字符串对象  
       2.String(byte[] bytes, int offset, int length)--字节数组转换成字符串
       3.String(char[] value, int offset, int count) --字符数组转换成字符串
       4.String(String original) --字符串常量创建字符串对象
    ----------------
    String(StringBuffer buffer)--将StringBuffer转换成字符串
    String(StringBuilder builder)--将StringBuilder转换成字符串

例如:String s1=new String("abc");创建了几个对象?

两个对象,第一个对象保存字符串常量池中的"abc"
第二个对象就是new String()创建的对象

2.String的常用方法:

1.char    charAt(int index) 从原始字符串中得到指定位置的字符元素。
2.String concat(String str)将指定的字符串连接到该字符串的末尾。
3.boolean contains(CharSequence s)判断指定的字符串数据是否在原始字符串中存在
4.boolean endsWith(String suffix)测试此字符串是否以指定的后缀结尾。 
5.boolean startsWith(String prefix)测试此字符串是否以指定的前缀开头。
6.byte[] getBytes() 将字符串通过默认的字符编码转换成字节数组
byte[] getBytes(String charsetName)将字符串通过指定的字符编码转换成字节数组 
7.int indexOf(String str) 返回指定子字符串第一次出现在字符串内的索引位置
8.lastIndexOf(String str)返回指定子字符串最后一次出现的字符串中的索引。
9.boolean isEmpty()判断字符串是否为空串,此方法为true时,字符串长度一定为0
10.int length() 返回此字符串的长度。
11.boolean matches(String regex) 判断字符串数据是否符合正则表达式
12.String replace(CharSequence old, CharSequence new) 将与字面目标序列匹配的字符串的每个子字符串替换为指定的字面替换序列
13.String[] split(String regex)通过指定的符号将字符串拆分成一个字符串数组
14.String substring(int beginIndex)截取从指定的开始位置到字符串结尾的一个子字符串
String substring(int beginIndex, int endIndex) 截取从指定的开始位置到指定的结束位置的一个子字符串
15.char[]  toCharArray() 将此字符串转换为新的字符数组
16.String toLowerCase() 大写转小写
17.toUpperCase() 小写转大写
18.String trim()去除原始字符串的两头空格

3.字符串与基本类型的转换

1.String 转换成基本类型
    通过基本类型提供的封装类的parseXXX(String  str)
    int parseInt(String  str)  / double  parseDoule(String  str)
    boolean parseBoolean(String  str).......
    上面的这一组parseXXX(String  str)方法只能被基本类型的封装类调用。
    只有基本数据类型才有自己对应的封装类。
    封装类---基本数据类型对应的复合数据类型
    例如:
    double  dou=12.5;  // double类型的变量,没有可供使用的方法
    Double  dou=new Double(12.5); //Double的对象,有可供使用的变量和方法。
    Double就是double的封装类
    基本类型[变量]         封装类[对象]
      byte                         Byte   
      short                       Short
      int                           Integer
      long                        Long
      float                        Float
      double                    Double
      char                       Character
      boolean                 Boolean

    自动装箱---将基本数据类型转换成对应的封装类类型
        1.封装类的构造方法
        2.将基本数据类型变量/数据值直接赋值给对应的封装类变量
    
    自动拆箱--将封装类类型转成基本数据类型【直接赋值】

基本数据类型与对应封装类的区别
        基本数据类型                                                          封装类
         基本类型                                                                   类
     变量,没可供调用的方法和变量                       构造出来都是对象,提供了变量和方法
     只在内存的栈区有数据分配                              内存的栈区和堆区都有内存分配。
     有各自默认的数据值 int---0                               默认值为null   Integer---null

2.基本类型转换成String 

将基本数据类型转换成String【static String valueOf(基本数据类型的数据值/变量)】

String要转换成基本类型,需要使用基本类型对应的封装类
调用静态方法parseXXXX(String  value)实现转换
        String  intvalue="1234";
        int intval=Integer.parseInt(intvalue);
        String doublestr="178.9";
        double douvalue=Double.parseDouble(doublestr);
        String  boostr="false";
        boolean boovalue=Boolean.parseBoolean(boostr);

基本类型要转换成String--String的valueOf(基本类型数据/变量)静态方法
        int intvalue1=1234;
        String intstr=String.valueOf(intvalue1);
        double dou=12.5;
        String doublestr1=String.valueOf(dou);

4.String类与字节数组或者字符数组之间的相互转换

    String类与字节数组
        1.String类转换成字节数组----
        String类的”byte[] getBytes()”/”byte[] getBytes(String charsetName)” 

        2.字节数组转换String类型----
        String类的构造方法String(byte[] bytes, int offset, int length)

    String类与字符数组
        1.String类转换成字符数组----
        String类的”char[]  toCharArray()”
        2.字符数组转换String类型----
        String类的构造方法”String(char[] value, int offset, int count)”

5.字符串操作类StringBuilder、StringBuffer

    StringBuilder--- 一个可变的字符序列
    StringBuilder() 构造一个初始容量为16个字符的空StringBuilder对象。 
    StringBuilder(CharSequence seq)通过其他的StringBuilder对象创建一个新的StringBuilder对象
    StringBuilder(int capacity) 构造一个由 capacity参数指定的初始容量得空StringBuilder对象
    StringBuilder(String str) 构造一个初始化为指定字符串内容的StringBuilder对象。

int    capacity() 返回当前容量。 
char    charAt(int index) 返回 char在指定索引在这个字符值。
int    indexOf(String str) 返回指定子字符串第一次出现的字符串内的索引。 
int    lastIndexOf(String str) 返回指定子字符串最右边出现的字符串内的索引。
int    length() 返回长度(字符数)。 

StringBuilder    append(Object o) 将参数的字符串表示追加到序列中。 
StringBuilder    delete(int start, int end) 删除此序列的子字符串中的字符。 
StringBuilder    deleteCharAt(int index) 删除 char在这个序列中的指定位置。 
StringBuilder    insert(int offset, Object o) 将参数的字符串表示插入到此序列中指定的位置。
StringBuilder    reverse() 导致该字符序列被序列的相反代替。 
StringBuilder    replace(int start, int end, String str) 用指定的String中的字符替换此序列的子字符串中的 String 。

String    substring(int start) 返回一个新的 String ,其中包含此字符序列中当前包含的字符的子序列。 
String    substring(int start, int end) 返回一个新的 String ,其中包含此序列中当前包含的字符的子序列。 
String    toString() 返回表示此顺序中的数据的字符串。

StringBuilder与String得转换
    StringBuilder--》String  
        StringBuilder的toString();
        String的构造方法String(StringBuilder builder)

    String-->StringBuilder
        StringBuilder的构造方法

StringBuffer类与StringBuilder类相似

StringBuffer类的构造方法
StringBuffer() 构造一个初始容量为16个字符的空StringBuffer对象。 
StringBuffer(CharSequence seq) 通过其他的StringBuffer对象创建一个新的StringBuffer对象
StringBuffer(int capacity) 构造一个由 capacity参数指定的初始容量得空StringBuffer对象。
StringBuffer(String str) 构造一个初始化为指定字符串内容的StringBuffer对象。 

StringBuffer类的方法
StringBuffer    append(Object o) 将参数的字符串表示追加到序列中。 
int    capacity() 返回当前容量。 
char    charAt(int index) 返回 char在指定索引在这个字符值。
StringBuffer    delete(int start, int end) 删除此序列的子字符串中的字符。 
StringBuffer    deleteCharAt(int index) 删除 char在这个序列中的指定位置。 
int    indexOf(String str) 返回指定子字符串第一次出现的字符串内的索引。 
int    lastIndexOf(String str) 返回指定子字符串最右边出现的字符串内的索引。
StringBuffer    insert(int offset, Object o) 将参数的字符串表示插入到此序列中指定的位置。
int    length() 返回长度(字符数)。 
StringBuffer    reverse() 导致该字符序列被序列的相反代替。 
StringBuffer    replace(int start, int end, String str) 用指定的String中的字符替换此序列的子字符串中的 String 。
String    substring(int start) 返回一个新的 String ,其中包含此字符序列中当前包含的字符的子序列。 
String    substring(int start, int end) 返回一个新的 String ,其中包含此序列中当前包含的字符的子序列。 
String    toString() 返回表示此顺序中的数据的字符串。

StringBuffer与String得转换
    StringBuffer--》String  
        StringBuffer的toString();
        String的构造方法String(StringBuffer buffer)

    String-->StringBuffer
        StringBuffer的构造方法

StringBuilder与StringBuffer的区别?
StringBuilder--一个可变的字符序列,不保证线程同步【线程安全】. 访问速度快   jdk1.5 
StringBuffer---一个可变的字符序列,保证线程安全. 访问速度慢   JDK1.0 

String与StringBuilder/StringBuffer的区别?
String---------不可变,非线程安全,运行速度慢,  少量的字符串操作[拼接]的情况
StringBuilder--可变,  非线程安全,运行速度快,  单线程下大量字符串操操作的情况
StringBuffer---可变,  线程安全,  运行速度较快,多线程下大量字符串操操作的情况

       ==                                                             equals
   比较运算符                                           java.lang.Object中的方法
   基本类型:比较数据值                           不能被比较
   复合类型:堆内存地址【引用地址】      复合类型:默认比较的是堆内存地址【引用地址】
                                                                          如果被重写了比较的是存储对象的内容[String]

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值