黑马程序员_温习String类(个人笔记)

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------


String类、



作用:用于描述字符串事物,内部提供了多种字符串操作方法
常见操作:(一)获取:
|--长度:int length()
以(String str = "abcdefabcdef")有值
 (String sss = "")无值
 (String snl = null)空   为例!!
str.length()-->12
sss.length()-->0
snl.length()-->空指针异常(NullPointerException)


|--角标位上字符: char charAt(int index)
str.length(2)-->c
sss.length(2)-->角标越界异常(StringIndexOutOfBoundsException)
snl.length(2)-->空指针异常(NullPointerException)

|--字符第一次出现角标位:int indexOf(int char)
str.length('c')-->2
sss.length('c')-->-1 (没有找到则返回-1)
snl.length('c')-->空指针异常(NullPointerException)


|--指定角标位开始字符第一次出现角标位: int indexOf(int ch, int fromIndex)
str.length('c',6)-->8
sss.length('c',6)-->-1 (没有找到则返回-1)
snl.length('c',6)-->空指针异常(NullPointerException)


|--字符串第一次出现角标位:int indexOf(String str)
str.length("abc")-->0 (出现的首元素角标位)
sss.length("abc")-->-1 (没有找到则返回-1)
snl.length("abc")-->空指针异常(NullPointerException)


|--指定角标位开始字符串第一次出现角标位:int indexOf(String str)
同字符指定一样


|--反向字符第一次出现位置: int lastIndexOf(int ch)
str.lastIndexOf('c')-->8 (反向第一次出现位置)
sss.lastIndexOf('c')-->-1 (没有找到则返回-1)
snl.lastIndexOf('c')-->空指针异常(NullPointerException)


|--反向指定角标位开始字符第一次出现角标位: int lastIndexOf(int ch, int fromIndex) 
str.lastIndexOf('c',6)-->2 (指定角标后,向前找)
sss.lastIndexOf('c',6)-->-1 (没有找到则返回-1)
snl.lastIndexOf('c',6)-->空指针异常(NullPointerException)


|--反向字符串第一次出现位置: int lastIndexOf(String str)
形式同上

|--反向字符串第一次出现位置: int lastIndexOf(String str, int fromIndex) 
形式同上


|--获取子串
|--指定位置开始:String substring(int beginIndex)
str.str.substring(7)-->"bcdef" (获取指定角标位以后的子串,包含7)
sss.str.substring(7)-->角标越界异常(StringIndexOutOfBoundsException)
snl.str.substring(7)-->空指针异常(NullPointerException)
|--指定范围:String substring(int beginIndex, int endIndex)
str.str.substring(7,9)-->"bc" (获取指定范围子串,包头不包尾)
sss.str.substring(7,9)-->角标越界异常(StringIndexOutOfBoundsException)
snl.str.substring(7,9)-->空指针异常(NullPointerException)


常见操作:(二)判断:
|--是否包含子串:boolean contains(str)
str.lastIndexOf("abc")-->true
sss.lastIndexOf("abc")-->false
snl.lastIndexOf("abc")-->空指针异常(NullPointerException)


|--是否有内容:boolean isEmpty()
str.isEmpty()-->false
sss.isEmpty()-->true (判断的是"",而不是null)
snl.isEmpty()-->空指针异常(NullPointerException)


|--是否指定内容开头:boolean startsWith(str)
形式同上


|--是否指定内容结尾:boolean endsWith(str)
形式同上

|--字符串是否相同(复写Object类中的equals方法):boolean equals(str)
str.equals("abcdefabcdef")-->true
sss.equals("abcdefabcdef")-->false (判断的是"",而不是null)
snl.equals("abcdefabcdef")-->空指针异常(NullPointerException)


|--字符串是否相同,忽略大小写(特有方法):boolean equalsIgnoreCase(String str) 
形式同上

常见操作:(三)转换:
|--字符数组转字符串
|--构造函数:
|--全部转换:String(char[] value)
以(char[] arr = {'a','b','c','d','e','f'})
和(char[] aul = null) 为例
String s = new String(arr)-->"abcdef"
String s = new String(aul)-->空指针异常(NullPointerException)


|--部分转换:String(char[],int offest,int count)//offest:偏移位   count:数量
String s = new String(arr,3,2)-->"de"
String s = new String(arr,3,5)-->字符串角标越界异常(StringIndexOutOfBoundsException)
String s = new String(aul,3,2)-->空指针异常(NullPointerException)
|--静态方法:
|--全部转换:static String copyValueOf(char[] value)
String.copyValueOf(arr)-->abcdef
String.copyValueOf(aul)-->空指针异常(NullPointerException)
|--部分转换:static String copyValueOf(char[] date,int offset,int count)
形式同上
|--字符串转字符数组:char[] toCharArray()
char[] arr = "黄大仙儿abc".toCharArray();-->{'黄','大','仙','儿','a','b','c'}


|--字节数组转字符串:byte[] getBytes()
|--默认编码(ASCII):byte[] getBytes()
byte[] arr = "黄大仙儿abc".getBytes();-->{-69,-58,-76,-13,-49,-55,-74,-7,97,98,99}
|--指定编码:byte[] getBytes(Charset charset) //()内写编码格式如"UTF-8,ISO-8859-1等)
形式同上


|--基本数据类型转字符串(静态):
|--int型:static String valueOf(int)
|--double型:static String valueOf(double)
等基本数据类型(帮助文档java.lang.String方法最下边)
|--字符串转大写:String toUpperCase()//无论大小写,全转大写
"abCDef"-->"ABCDEF"


|--字符串转小写:String toLowerCase()//无论大小写,全转小写
"abCDef"-->"abcdef"


|--去除字符串两端空格:String trim();//只去两端,字符串内部去除
"  ab  ac  "-->"ab  ac"


|--字符串自然排序:int compareTo(String)//返回值为“正数”,“负数”,“0”(二叉树排序会用到)
String s1 = "vbc";
String s2 = "vac";
s1.compareTo(s2)--> 1 //转码相减 b(98)-a(97)=1


常见操作:(四)替换:
|--字符与字符:String replace(oldchar,newchar)
String s = "大大仙儿";
String s1 = s.replace('大','小');
s-->"大大仙儿";//原串不变,因为是不同对象
s1-->"小小仙儿";


|--通过正则:String replaceAll(String regex, String replacement)
String s = "www.sina.com.cn";
String s1 = s.replaceAll("\\w+\\.\\w+(\\.+\\w+)","$1");//可理解为获取"域名"
s-->"www.sina.com.cn"//原串不变,因为是不同对象
s1-->".com.cn"

常见操作:(五)切割:
|--按正则切:String[] split(regex)
String s = "www.sina.com.cn";
String[] s1 = s.split("\\.");\\正则中"."为关键字,需要\\转义为"."点
s-->不变,不同对象
s1-->{"www","sina","com","cn"}


StringBuffer:是字符串缓冲区,是一个可变长度的容器,可对操作多个数据类型,最终通过toString方法变成字符串


常见操作:(一)存储:
|--添加多种类型:StringBuffer append(多种类型)
StringBuffer sb = new StringBuffer();
sb.append("abc").append(123).append(true);
sb-->"abc123true"


|--指定位置添加:StringBuffer insert(index,多种类型)
sb.insert(3,zzz);
sb-->"abczzz123true"

|--将缓冲区中指定数据存储到指定字符数组中:void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin)


常见操作:(二)删除:
|--删除范围:StringBuffer delete(start,end)//包头不包尾
|--删除指定位置:StringBuffer deleteCharAt(index)


常见操作:(三)获取:
|--角标位字符:char charAt(int index)
|--字符串第一次出现角标位:int indexOf(String str)
|--反向获取字符串第一次出现角标位:int lastIndexOf(String str)
|--长度:int length()
|--获取范围:String substring(start,end,string)


常见操作:(四)修改:
|--替换原串范围:StringBuffer replace(start,end,string)
|--替换角标位字符:void setCharAt(int index,char ch)


常见操作:(五)反转:
|--反转字符串:StringBuffer reverse()


JDK1.5版本出现了:StringBuilder


|--StringBuffer 和 StringBuilder 区别


|--StringBuffer 线程同步
|--StringBuilder 线程不同步
|--以后开发,建议使用:StringBuilder
基本数据类型对象包装类:
|--字符串转基本数据类型:
|--静态方法:xxx a = Xxx.parseXxx(String)
如:int a = Integer.parseInt("123");
如:boolean b = Boolean.parseBoolean("true");


|--非静态:如:Integer("123");
Integer i = new Integer("123");
int num = i.intValue();//将对象,转为int


|--十进制转换成其他进制:
|--转二进制:toBinaryString()
|--转十六进制:toHexString()
|--转八进制:toOctalString()
|--转指定进制:parseInt(String,进制)


JDK1.5版本后新特性(自动装箱,自动拆箱)
|--如 Integer x = new Integer(4);

 Integer x = 4; //自动装箱


---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断路器保护灵敏度校验整改及剩余电流监测试点应用站用交流系统断

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值