黑马程序员-----String类和StringBuffer类总结

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

学习笔记String

一、所属包java.lang.String,没有子类,特点:一旦被初始化就不可以被改变。

创建类对象的两种方式:

1、直接赋值法:String s1 = “abc”;

2、new关键字发:String s2 = new String(“abc”)

内存存在方式:

String Str1= “abc”这个语句会先检查字符串常量池是否存放这个”abc”这个字符串对象,如果没有存在,那么就会在字符串常量池中创建这个字符串对象,如果存在直接返回该字符串的内存地址值。

String str2 = new String(“abc”) 该语句会创建两个对象,首先会先检查字符串常量池中存不存在"abc"这个字符串对象,如果不存在就会创建,如果存在就返回内存地址值。创建了出来之后,new String这个语句就会在堆内存中开辟一个字符串对象。总共两个对象。 

注意:String类复写了Object类中的equals方法,用于判断字符串是否相同。s1.equals(s2)true 

二、对字符串操作的方法

1、获取方法:

1.1int length()  字符串的长度

1.2char charAt(int index)  特定位置的字符 (角标越界报错)

1.3int indexOf(int ch)  特定字符的位置(overload)(该字符多余1个返回第一个出现的位置)没有找到返回-1

Int indexOf(int ch,int fromIndex) 从指定位置开始搜索

int indexOf(String str)  子字符的位置(overload)

Int indexOf(iString str,int fromIndex) 从指定位置开始搜索

 1.4int lastIndexOf(int ch)  最后一个字符的位置 

2、判断方法:

2.1:字符串是否包含某个子串

boolean contains(CharSequences) 是否包含指定序列(CharSequences字符序列)

       也可以用int indexOf(String str),返回-1说明不包含。

2.2是否以指定内容开头Boolean startsWith(String str)

2.3是否以指定内容结尾boolean endsWith(String str)

2.4是否为空boolean isEmpty()是否长度为如:“” null V1.6

2.5是否相等boolean equals(Object anObject) 是否相等

boolean equalsIgnoreCase(String anotherString) 忽略大小写是否相等

 三、转换功能

3.1:将字符数组转成字符串

1)构造函数:String (char[])

                          String (char[],offset,count)将字符数组一部分转成字符串(offset开始,count个数)

:

  Char[] arr = {a,b,c,d,e};

        String str = new String (arr,1,3);

2)静态方法:

Static String copyValue Of(char[])

Static String copyValue Of(char[],offset,count)

Static String Value Of(char[])

3.2:将字符串转成字符数组 Char[] toCharArray(); 

3.3将字节数组转成字符串

String (byte[])

String(byte[],offset,count) 

3.4字符串转成字节数组Byte[] getBytes(); 

3.5:将基本数据类型转成字符串

Static String Value Of(int)

Static String Value Of(double)

2+””

四、替换方法

  String replace(char old,char,new);

String s=”hello java”;  String s1 = s.replace(e,k);  shello java,  s1 hkllo java

String s1 = s.replace(“java”,”word”);

五、切割方法 String[] split(regex);

六、子串,获取

String substring(int beginindex,int endindex)包含头不包含尾

String substring(int begin)

七、转换、去除空格、比较

7.1:大小写转换

  String toUpperCase();

  String toLowerCase();

7.2:去除两端多个空格

String trim();

7.3对两个字符串自然顺序比较

Int CompareTo()  等于小于 负数 大于-正数  比较的ASCII 

学习笔记StringBuffer·

一、字符串缓冲区,是一个容器。没有子类不能继承。
特点:长度可变化;可操作多个数据类型;可通过toString()变成字符串。
二、存储方法
1、StringBuffer append();将指定数据添加到已有数据结尾处。没byte、short的重载
StringBuffer sb = new StringBuffer();
sb.append(34).append(“abc”).append(“de”);方法调用链:返回时是该对象
例:
StringBuffer sb = new StringBuffer();
StringBuffer sb1 = sb.append(34);
Sop(sb==sb1)  true 同一个对象
Sop(sb.toString());  34
Sop(sb1.toString());  34
2、StringBuffer Insert(Index,任意类型数据)将数据插入指定Index位置
Sb.insert(1,”hi”);
三、删除方法
StringBuffet  Delete(int start,int end);包含头不包含尾
StringBuffer  deleteCharAt(int index);删除指定位置字符
Sb.delete(0,sb.length())清空缓冲区
四、获取方法
Char charAt(int index);
Int indexOf(String str);
Int lastindexOf(String str);
Int length();
String subString(int start,int end);
五、修改方法
Sb.replace(int start,int end,String str)
sb.setChrAt(2,‘k’)替换一个字符
Void setCharAt(int index,char ch);
六、翻转方法
StringBuffer  reverse()
七、把StringBuffer 里 srcBegin 到srcEnd 内容存到字符数组从dstBegin开始
Void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)八:StringBuilder类
在JDK1.5版本后出现
StringBuilder线程不同步,StringBuffer线程同步 安全,同时只允许一个地方使用
StringBuilder快一些,不需要判断锁,单线程用
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值