java之String

来源:互联网 发布:dt数据时代 编辑:程序博客网 时间:2024/06/06 23:54
  1. 声明
String str1="abc";  String str2=new String("abc");  区别?

在栈中声明str1引用,指向栈中的内容“abc”;
在栈中声明str2引用,指向堆中的内容“abc”;

String str1 = "abc";String str2 = "abc";System.out.println(str1==str2); //true可以看出str1和str2是指向同一个对象的。String str1 =new String ("abc");String str2 =new String ("abc");System.out.println(str1==str2); // falsenew的方式是生成不同的对象。每一次生成一个。System.out.println(str1 .equals(str2)); //true==是比较地址,而equals,则是比较值

2.操作(String str)
a.获取
int length = str.length();
char a = str.charAt(int index);
int p = str.indexOf(int ch);返回ch第一次出现在字符串中的位置;
int p = int indexOf(int ch , int fromIndex);
int indexOf(String str);
int indexOf(String str , int fromIndex);
b.判断
boolean contains(str):判断字符串是否存在
if(str.indexOf(“aaa”)!=-1) …返回-1的话,表示str不存在字符串aaa
Boolean isEmpty():原理就是判断长度是否为0
boolean startWith(String str)
c.转换
构造函数String(byte[])
构造函数(byte[] , offset ,count)将字节数组中的一部分转成字符串
String valueOf(xxx);
d.替换
String replace(oldchar,newchar);
e.切割
String [] split(regex);
f.子串
获取字符串中的一部分
String subString(begin)
String subString(begin,end)