黑马程序员——String小结

来源:互联网 发布:宿舍破解版路由器mac 编辑:程序博客网 时间:2024/06/03 20:59
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

String类是用于描述字符串的事物。
那么他就提供了多个方法对字符串进行操作。


常见的操作有哪些?
"abcd"
1,获取:(get)
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(int ch);反向索引,与上面的对应。
…………
2,判断:(is)
2.1,字符串中是否包含某一个子串。
boolean contains(str);
特殊之处:indexOf(str);可以索引str第一次出现的位置,如果返回-1,表示该str不在字符串中存在。
所以,也可以用于对指定str判断是否包含。
if(str.indexOf("aa")!=-1)
包含
而且该方法既可以判断,又可以获取出现的位置。
如果只为判断,用contains(),如果又要判断又要获取位置,用indexOf()
2.2,字符串中是否有内容。
boolean isEmpty();原理就是判断length()是否为零。""长度为零,null指向空。
2.3,字符串是否是以指定内容开头。
boolean startsWith(String str);
2.4,字符串是否是以指定内容结尾。
boolean endsWith(String str);
2.5,判断字符串内容是否相同:equals(),String类复写了Object类。
boolean equals(str);
2.6,判断内容是否相同,并忽略大小写。
boolean equalsIgnoreCase();
…………
3,转换:(trans)
3.1,将字符数组转成字符串。
构造函数:String(char[])
 String(char[],int offset,int count):将字符数组中的一部分转换成字符串。
offset是起始位置,count是个数。
静态方法:
static String copyValueOf(char[]);
static String copyValueOf(char[] data,int offset,int count);转换一部分


static String valueOf(char[]);
3.2,将字符串转成字符数组。***
char[] toCharArray();
3.3,将字节数组转成字符串。
String(byte[])
String(byte[],int offset,int count):将字符数组中的一部分转换成字符串。
3.4,将字符串转成字节数组。
byte[] getBytes();
3.3,3.4特殊之处:字符串和字节数组在转换过程中,是可以指定编码表的。
3.5,将基本数据类型转换成字符串。
static String valueOf(int);
static String valueOf(double);
……
//3+""; = //String.valueOf(3);
…………
4,替换:(replace)
String replace(oldchar,newchar);
…………
5,切割:(split)
String[] split(regex);
…………
6,子串:(sub)
获取字符串中的一部分。
String substring(int begin);
String substring(int begin, int end);
…………
7,转换,去除空格,比较:(7)
7.1,将字符串转成大写或者小写。
String toUpperCase();
String toLowerCase();
7.2,将字符串两端的多个空格去除。
String trim();
7.3,对两个字符串进行自然顺序的比较。
int compareTo(String str);



------------------------------------------------------------------------------------------------

StringBuffer是字符串缓冲区。
是一个容器,
1,而且长度是可变化的。
2,可以直接操作多个数据类型。
3,最终会通过toString方法变成字符串。
C create U update R read D delete


1,存储
StringBuffer append();将指定的数据作为参数添加到已有数据的结尾处。
StringBuffer insert(index,数据);可以将数据插入到指定index位置。
…………
2,删除
StringBuffer delete(int start,int end);删除缓冲区中的数据,包含start,不包含end。
StringBuffer deleteCharAt(int index);删除指定位置的字符。
…………
3,获取
char charAt(int index);获取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);将start到end中的元素修改为str,包含start,不包含end。
void setCharAt(int index,char ch);将index位置的字符换成ch。
…………
5,反转
StringBuffer reverse();反转。
6,void getChars(int srcBegin, int srcEnd, char[] dst, int dstBejin);
将缓冲区中的指定数据,存储到指定字符数组中。
从srcBegin到srcEnd的数据存到dst中,从dstBegin开始存。
其中数据包含srcBegin,不包含srcEnd。


JDK 1.5 版本之后,出现了StringBuilder。
StringBuffer是线程同步。
StringBuilder是线程不同步。


以后开发建议使用StringBuilder。


升级三个因素:
提高效率,简化书写,提高安全性。




------------------------------------------------------------------------------------------------
基本数据类型对象包装类。
以int为例:
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 a = Double.parseDouble("123.123");
boolean a = Boolean.parseBoolean("false");
对象调用方式:
Integer i = new Integer("123");
int num = i.intValue();


十进制转成其他进制。
toBinaryString();
toHexString();
toOctalString();


其他进制转成十进制。
parseInt(String s,int radix);

0 0