---------------------- android培训、java培训、期待与您交流! ----------------------
String和基本类型对象包装类总结
基本数据类型对象包装类:
byte 是基本数据类型。有自己对应的对象 Byte(引用数据类型)
short Short
int Integer
long Long
boolean Boolean
float Float
double Double
char Character
基本数据类型对象包装类的最常见作用就是用于基本数据类型和字符串类型之间做转换。
基本数据类型转成字符串。
基本数据类型+""
基本数据类型.toString(基本数据类型值);
如:Integer.toString(34);//将整数类型的34转换成字符串"34"。
字符串转换成基本数据类型。
xxx a = Xxx.parseXxx(String);
int a = Integer.parseInt("123");
double d = Double.parseDouble("123");
boolean b = Boolean.parseBoolean("true");
Integer i = new Integer("123");
int num = i.intValue();//非静态,parseInt是静态的。功能一样。
十进制转成其他进制。
static String toBinaryString();
static String toHexString();
static String toOctalString();
其他进制转成十进制。
static int parseInt(string,radix);//string 是进制的表现形式,
//如二进制是1110.radix是进制,如2,8,16.结果得到对应的十进制值。
Integer x = new Integer(4);
Integer x = 4;//new Integer(4);JDK1.5版本以后出现的新特性:自动装箱。简化书写。
//Integer x = null;会抛出异常,一定要判断x是否为空。
x = x/*x.intValue() */ + 2;//x = 2:其中 x 进行了自动拆箱。变成了int类型。和2进行加法运算。再将他们的和进行装箱赋给x。
Integer a = 127;
Integer b = 127;
关于String:
sop("a==b:"+(a==b));//true.原因:a和b指向了同一个Integer对象。
//因为当数值在byte范围内时,对于新特性,如果该数值已经存在,则不会再开辟新的空间。
String s1 = "abc";//s1是一个类类型变量,所以"abc"是一个对象。
//字符串最大特点:一旦被初始化就不可以被改变。
//String里面有一个常量池,用于存放"abc"这样的字符。
// s1 = "kk"; //abc对象没有变,s1指向了kk。s1的地址变了。
String s2 = new String("abc");
//s1和s2的区别:s1在内存中有一个对象。s2在内存中有两个对象。
System.out.println(s2==s1);//false
System.out.println(s1.equals(s2));//true,equals比较的是内存地址。
//String类复写了Object类中的equals方法,定义了自己独特内容。
//该方法用于判断字符串是否相同。
StringBuffer:
StringBuffer是字符串缓冲区。
是一个容器。
特点:
1,而且长度是可变化的。
2,可以直接操作多个数据类型。
3,最终会通过toString方法变成字符串。
C create U update R read D delete
1,存储。
StringBuffer append():将指定数据作为参数添加到已有数据的结尾处。
StringBuffer insert(index,数据):可以将数据插入到指定Index位置。
2,删除。
StringBuffer delete(start,end):删除缓冲区中的数据,包含start不包含end。
StringBuffer deleteCharAt(index):删除指定位置的字符。
3,获取。
char charAt(int index)
int indexOf(String str)
int lastIndexOf(String str)
int length();
String subString(int start,int 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);//src:source,dst:destination。
将缓冲区中的指定数据存储到指定字符数组中。
在JDK1.5版本之后出现了StringBuilder。
StringBuffer是线程同步的。需要判断锁。多线程用。
StringBuilder是线程不同步的。单线程用。
将StringBuilder的实例用于多个线程是不安全的。如果需要这样的同步,则建议使用StringBuffer。
以后开发建议使用StringBuffer,可以自己加锁。
效率最重要。
升级三个因素:
1,提高效率。
2,简化书写。
3,提高安全性。
String的方法:
String 类是用于描述字符串事物。
那么它就提供了多个方法对字符串进行操作。
常见的操作有哪些?
1,获取。
1.1 根据字符串中包含的字符数,也就是字符串的长度。
int length():获取长度
1.2 根据位置获取位置上的某个字符。
char charAt(int index):返回指定索引处的char值。
1.3 根据字符获取该字符在字符串中的位置。
int indexOf(int ch):返回指定字符ch在此字符串中第一次出现处的索引。int ch:接收的是ASC码。
int indexOf(int ch,int fromIndex):从fromIndex指定位置开始,获取ch在字符串中出现的位置。
int indexOf(String str):返回指定字符串str在此字符串中第一次出现处的索引。
int indexOf(String str,int fromIndex):从fromIndex指定位置开始,获取str在字符串中出现的位置。
int lastIndexOf(int ch):返回指定字符在此字符串中最后一次出现处的索引。
2,判断。
2.1 字符串中是否包含某一个字串。
boolean contains(str):判断字符串是否包含。
特殊之处:IndexOf(str):可以索引str第一次出现位置,如果返回-1,表示该str不在字符串中存在。
所以,也可以用于对指定字符串判断是否包含
if(str.indexOf("aa")!=-1)
而且该方法既可以判断又可以获取出现的位置,
2.2 字符串中是否有内容。
boolean isEmpty():原理就是判断长度是否为0.
2.3 字符串中是否是以指定内容开头。
boolean startWith(str):测试此字符串是否以指定的前缀开始。
2.4 字符串中是否是以指定内容结尾。
boolean endsWith(str):测试此字符串是否以指定的后缀结束。
2.5 判断字符串的内容是否相同。复写了Object类中的equals方法。
boolean equals(str);
2.6 判断内容是否相同,并忽略大小写。
boolean equalsIgnoreCase();
3,转换。
3.1 将字符数组转换成字符串。
构造函数:
String(char[] value)
String (char[] value,int offset,int count):将字符数组中的一部分转换成字符串。
静态方法:
static String copyValueOf(char[] data):返回指定数组中表示该字符序列的String。
static String copyValueOf(char[] data,int offset,int count):返回指定数组中表示该字符序列的String。
static String valueOf(char[] data):返回char数组参数的字符串表示形式。
static String valueOf(char[] data,int offset,int count):返回char数组参数的特定子数组的字符串表示形式。
3.2 将字符串转换成字符数组。
char[] toCharArray():将此字符串转换为一个新的字符数组。
3.3 将字节数组转换成字符串。
String(byte[] value)
String (byte[] value,int offset,int count):将字节数组中的一部分转换成字符串。
3.4 将字符串转换成字节数组。
byte[] getBytes():使用平台的默认字符集将此String编码为byte序列,并将结果存储到一个新的byte数组中。
3.5 将基本数据类型转换成字符串。
static String valueOf(int)
static String valueOf(double)
3+"";//=String.valueOf(3);
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
4,替换。
String replace(char oldChar,char newChar);返回一个新的字符串,它是通过用newChar替换此字符串中出现的所有oldChar得到的。
String replace(CharSequence target,CharSequence replacement):使用指定的replacement替换序列,替换此字符串所有匹配字面值目标序列的子字符串。
5,切割。
String[] split(regex);
6,字串。获取字符串中的一部分。
String subString(int begin);
String subString(int begin,int end);
7,转换,去除空格,比较。
7.1 转换:将字符串转成大写或者小写。
String toUpperCase();
String toLowerCase();
7.2 去除空格:将字符串两端的多个空格去除。
String trim();
7.3 比较:对两个字符串进行自然顺序的比较。
int compareTo(string);
---------------------- android培训、java培训、期待与您交流! ----------------------