——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
一.概述
String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例来实现。
字符串是常量;它们的值在创建之后不能改变。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享它们。例如:
String str = "abc";
等效于:
char data[] = {'a', 'b', 'c'};
String str1 = new String(data);
String 类包括的方法有:检查序列的单个字符;比较字符串;搜索字符串;提取子字符串;创建字符串副本,在该副本中,所有的字符都被转换为大写或小写形式。
str与str1有什么区别呢?
str在内存中存在一个对象,str1则存在两个。
二.操作字符串方法
1.获取和判断
1.1获取长度: String s = “abc” int a = s.length() a的结果是3。
根据索引获取字符:char c = s.charAt(0) 则c的结果是‘a’
根据字符获取索引:
int b = s.indexOf(‘a’) 则返回b的结果是‘a’字符在该字符串中第一次出现的位置0的索引。
int d = s.indexOf(‘a’,0) 则返回d的结果是‘a’字符在该字符串中从0位置开始出现的位置0的索引
类似还有:
int indexOf(String str) 返回第一次出现的指定子字符串在此字符串中的索引。
int indexOf(String str, int fromIndex) 从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索
int lastIndexOf(String str) 返回在此字符串中最右边出现的指定子字符串的索引。
1.2判断
1.2.1字符串是否包含某一个字符串
boolean contains(str):原理判断长度是否为零
特殊之处:indexOf(str):可以所以str第一次出现的位置,如果返回-1则表示该str不在此字符串中
1.2.2字符串是否包含内容
boolean isEmpty():原理判断长度是否为零
1.2.3字符串是否以指定内容开头
boolean startsWith(String prefix)
测试此字符串是否以指定的前缀开始。
1.2.4字符串是否以指定内容结束
boolean endsWith(String prefix)
测试此字符串是否以指定的后缀结束。
1.2.5判断字符串内容是否相同。复写了Object类中equals方法:
boolean equals(str)
1.2.6判断内容是否相同并忽略大小写
boolean equalsIgnoreCase();
2.常见功能转换
3.替换方法
如
String s = “abc”;
s.replace(“ab”,“123”)
则新串s为:”123bc“
4.切割方法
String s = “abc”;
String[] a = s.split(“”);
则a={“a”,”b”,”c”}
5.获取子串的一部分
String s = “abc”
s=s.substring(0,1)截取时候包含头不包含尾部,则s=”a”.
6.转换方法
练习:
三.StringBuffer和StringBuilder
StringBuffer和StringBuilder都是一个容器,特点:长度可变化,可以同时操作多种字节类型,最终通过toString()方法变成字符串输出。
1.StringBuffer方法:
2.StringBuileder方法同StringBuffer非常相似,但是这是后来版本升级的。
他们各自特点:
StringBuffer线程同步
StringBuilder线程不同步,但效率高,一般开发建议使用他。
3.升级3个因素
3.1提高效率
3.2简化书写
3.3提高安全性
4.练习:
四.基本数据类型对象包装
1.数据基本类型对象包装类
2.功能作用
2.1可以用于基本数据类型同字符串类型之间做转换,使用格式:
基本数据类型.toString(基本数据类型值)/Interger.toString(34)可以转成“34”。
2.2字符串转成基本数据类型
基本数据类型.parseInt(数据类型字符串)//Interger.parseInt(“34”)可以转成int 34.
2.3十进制转换其他进制
数据类型.toBinaryString();
数据类型.toHexString();
数据类型.toOctalString();
2.4其他进制转十进制
数据类型.parseInt(“X进制数据”,X进制)