13天-01-String
String类适用于描述字符串事物。
常见的操作:
1.获取:
1.1字符串中包含的字符数,也就是字符串的长度。int length():获取长度
1.2根据索引值获取位置上某个字符。char charAt(int index);
1.3根据字符获取该字符在字符串中的位置
int indexOf(int ch);返回的是ch在字符串中第一次出现的位置。
int indexOf(int ch,int fromIndex);从fromIndex指定位置开始,获取ch在字符串中出现的位置。
int indexOf(String str);返回的是str在字符串中第一次出现的位置。
int indexOf(String str,int fromIndex);从fromIndex指定位置开始,获取str在字符串中出现的位置。
int lastIndexOf(String str);从最后向前查找str第一次出现的位置。
2.判断
2.1字符串中是否包含某一个子串。boolean contains(str);
特殊:indexOf(str);可以索引str第一次出现位置,如果返回-1,表示该str不在字符串中存在。也可以用于判断是否包含子串。
2.2字符中是否有内容。 boolean isEmpty(); //原理是判断长度是否为0
2.3字符串是否以指定内容开头。 boolean startsWith(str);
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[] toCharArrary();
3.3将字节数组转成字符串。String(byte[]);String(byte[],offset,count);//将字节数组中的一部分转成字符串。
3.4将字符串转成字节数组。byte[] getBytes();
3.5将基本数据类型转成字符串。static String valueOf(int); static String valueOf(double);
特殊:字符串和字节数组在转换过程中,是可以指定编码表的。
4.替换
String replace(oldchar,newchar);//如果替换的字符不存在,返回的是原字符串。
5.切割
String[] split(regex); //按照regex分割为多个子字符串,不包含regex
6.子串:获取字符串中的一部分
String substring(begin);//截取从指定位置开始到结尾字符串
String substring(begin,end);//截取从索引begin到end之间的字符串
7.转换,去除空格,比较
7.1将字符串转成大写或者小写。String toUpperCase();String toLowerCase();
7.2将字符串两端的多个空格去除。String trim();
7.3对两个字符串进行自然顺序比较。int compareTo(string)
StringBuffer是字符串缓存区,就是一个容器。而且长度是可变化的,可以操作多种数据类型,最终会通过toString方法变成字符串。
C create U update R read D delete
1.存储
StringBuffer append();将指定数据作为参数添加到已有数据结尾处。
StringBuffer insert(index,data):可以将数据插入到指定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(start,end);
4.修改
StringBuffer replace(start,end,string);
void setCharAt(index,char ch);
5.反转
StringBuffer reverse();
6.将缓冲区中指定数据存储到指定字符数组中
void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin) JDK1.5版本之后,出现了StringBuilder。StringBuffer是线程同步的,StringBuilder是线程不同步的。建议使用StringBuilder。JDK升级主要是在 提高效率,简化书写,提高安全性
13天-13-基本数据类型对象包装类
基本数据类型对象包装类
byte Byte 字节 8bit [-128,127]
short Short 短整型 16bit [-32768(-2的15次方),32767(2的15次方-1)]
int Integer 整型 32bit [-2147483648(-2的31次方),2147483647(2的31次方-1)]
long Long 长整型 64bit [-9223372036854775808(-2的63次方),9223372036854775807(2的63次方-1)]
float Float 浮点型 32bit [1.4E-45(2的-149次方),3.4028235E38(2的128次方-1)]
double Double 双精度 64bit [4.9E-324(2的-1074次方),1.7976931348623157E308(2的1024次方-1)]
char Character 字符 16bit
boolean Boolean 布尔值 true,false0是false,非0是true
基本数据类型对象包装类的最常见作用,就是用于基本数据类型和字符串类型之间做转换。
基本数据类型转成字符串:
基本数据类型+"";包装数据类型.toString(2); Integer.toString(2);
字符串转成基本数据类型:
Integer.parseInt(String);
Integer i=new Integer("2"); int num=i.intValue();
十进制转成其他进制
toBinaryString(); toHexString(); toOctalString();
其他进制转成十进制
parseInt(String,radix); //radix进制数,可以是2~36
注:当数值类型(int)在byte范围时[-128,127],如果该数值已经存在,则不会开辟新的空间。