---------------------- android培训、java培训、期待与您交流!
下面是我学习String类时的总结:
String 类
1, 字符串是一个特殊的对象。
2, 字符串一旦初始化就不可以被改变
String str = “abc”; //str是一个类类型变量,“abc”是一个对象。
String str1 = new String(“abc”);
有什么区别呢?
Str内存中代表一个对象;str1内存中代表两个对象
打印 str.equals(str1) true //String类复写了object中的equals方法。该方法用于判断字符串是否相同
打印 str == str1 false
常见的方法:
1, 获取
1.1 字符串的长度
int length():获取长度
1.2 根据位置获取位置上某个字符
char charAt(int index) //当访问到字符串中不存在的角标时会发生StringIndexOutOfBoundsException
1.3 根据字符获取该字符在字符串的位置
int indexOf(int ch ) 返回的ch在字符串中第一次出现的位置 //如果没有找到,返回-1
int indexOf(int ch,int fromIndex ) 从fromIndex指定位置开始,返回的ch出现的位置
int indexOf(String str)
int indexOf(String str,int fromIndex )
int lastIndexOf() 反向索引一个字符出现的位置
2, 判断
2.1 字符串中是否包含某一个子串。
boolean contains(str);
特殊之处:indexOf(str): 可以索引str第一次出现的位置,如果返回-1,表示该str不再字符串中存在。所以,也可以对指定判断是否包含
2.2 字符串中是否有内容
boolean isEmpty(); //判断长度是否为0.
2.3 字符串是否是以指定内容开始
2.4 字符串是否是以指定内容结尾
boolean endsWith(str);
2.5 判断字符串内容是否相同 复写了object类中的equals方法
boolean equals(str);
2.6 判断内容是否相同,并忽略大小写。
boolean equalsIgnoreCase();
3,转换
3.1 将字符数组转成字符串
构造函数String(char[])
String(char[],offset,count):将字符数组中的一部分转成字符串
静态方法 static String copyValueOf(char[]);
static String copyValueOf(char[],offset,count);
static String valueOf(char[])
3.2 将字符串转成字符数组
char[] toCharArray();
3.3 将字节数组转成字符串
构造函数String(byte[])
String(byte[],offset,length):将字节数组中的一部分转成字符串
3.4 将字符串转成字节数组
byte[] getBytes();
3,5 将基本数据类型转成字符串
Static String valueOf(int )
Static String valueOf(double ) 3+””;//String.valueOf(3);
特殊:字符串和字节数组在转换过程中,是可以指定编码表的
4 替换
String replace(oldchar,newchar); //如果要替换的字符不存在,返回的还是原串
5 切割
String[] split(regex);
6 取子串。(获取字符串中的一部分)
String substring(begin); 从指定位置开始到结尾。如果角标不存在,会出现字符串角标越界异常
String substring(begin,end); 包含头,不包含尾
7 转换 去除空格 比较
7.1 将字符串转成大写或小写
String toUpperCase()String toLowerCase();
7.2 将字符串两端的多个空格去除
String trim();
7.3 对两个字符串进行自然顺序的比较
int compareTo(Sring) // 正数、负数、0
StringBuffer 字符串缓冲区
1, 字符串的组成原理就是通过该类实现的。
2, StringBuffer可以对字符串的内容进行增删
3, StringBuffer是一个容器
4, 很多方法和String相同
5, StringBuffer是可变长度的
特点:1,长度是可变的
2,可以一次操作多个数据类型
3,最终会通过toString方法变成字符串
常用方法:
1, 存储
StringBuffer append():将指定数据作为参数添加到已有数据结尾处。
StringBuffer insert(offset,数据):可以将数据插入到指定index位置
2, 删除
StringBuffer delete(start,end) 删除缓冲区的数据,包含start,不包含end
StringBuffer deleteCharAt(index) 删除指定位置的字符
3, 获取
char charAt(int index)
int indexOf(String str)
int lastIndexOf()
int length();
String substring(begin,end);
4, 修改
StringBuffer replace(int start,int end,String str)
void setCharAt(int index, char ch)
5, 反转。
StringBuffer reverse()
6, 获取字符数组
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将缓冲区指定数据存储到指定数组中
在JDK1.5版本后出现了StringBuilder
StringBuffer 是线程同步 (多线程使用)
StringBuilder 是线程不同步 (单线程使用)
以后开发建议使用StringBuilder
java升级三因素:
1, 提高效率
2, 简化书写
3, 提高安全性
基本数据类型对象包装类
byte Byte
short short
int Integer
long Long
boolean Boolean
float Float
double Double
char Character
最常见作用:
就是用于基本数据类型和字符串类型之间做转换
基本数据类型转成字符串
1,基本数据类型+“”
2,基本数据类型.toString(基本数据类型值) 如:Integer.toString(34);//将34整数编程“34”。
字符串转成基本数据类型
如:int a = Integer.parseInt(“123”); //必须传入数字格式的字符串 ,可能会抛出NumberFormatException
boolean b = Boolean.parseBoolean(“true”);
Integer I = new Integer(“123”);
int num = i.intValue();
十进制转成其他进制。
toBinaryString();
toHexString();
toOctalString();
其他进制转换成十进制
parseInt(String,radix)
如:Integer.parseInt(“3c”,16)
Jdk1.5版本以后出现的新特性:
如:
Integer x = new Integer(4);
Integer x = 4; //自动装箱。 new Integer(4)
x = x + 2; // x进行自动拆箱。变成了int类型。和2进行加法运算。再将和进行装箱赋给x.
x相当于 x.intValue()
Integer m = 128;
Integer n = 128;
打印("m==n:"+(m==n)); //结果是false
Integer a = 127;
Integer b= 127;
打印("m==n"+(a==b)); //结果为true.因为a和b指向了同一个Integer对象。因为当数值在byte范围内容,对于新特性,如果该数值已经存在,则不会开辟新空间
-------------------------------------------- android培训、java培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net/heima