重拾java基礎(十二):java最常使用類型String總結
一、String類別概述
. String是引用資料型,屬於java.lang套件
3. 編碼表 ascii unicode
空构造 public String()
String s1=new String();
System.out.println(s1);
输出结果为空。
参数为字符串
public String(String s)
String s2=new String("hello"); //String s2="hello";
System.out.println(s2);
输出结果为 hello
参数为字节数组
public String( byte[] bytes ) 转换
byte[] t={97,98,99,'d'}; //byte b='d';
String s3=new String(t);
System.out.println(s3);
输出结果为 abcd 它是将byte数组类型转化为ASCII
表对应的字符
参数为字符数组 public String( char[] value ) 转换
char[] c={'a','b','c',100}; //char d=100;
String s4=new String(c);
System.out.println(s4);
输出结果为 abcd 它是将char数组类型转化为ASCII
表对应的字符。
new String的記憶體分配圖
3.一個字串常數可以直接當成一個物件去使用
四、+
四、+
3. 注意的是:使用+拼接字串時的記憶體分配圖(String物件是不可變的)
4. 即使String物件不是new出來的,那麼在進行字串拼接時也是每次都在堆 中新開闢記憶體空間
5. 字串不常量在堆 中新開闢記憶體空間
5. 字串不常在堆 會在堆中新開闢記憶體空間(重點)
五、判斷功能相關的方法
1. 它支持两种写法: String s="hello"; //s也是对象 String s=new String("hello"); 注意: String s1="hello";String s2="hello";这时有三个对象 s1、s2、hello2. 画内存分配图
六、獲取功能相關的方法boolean equals(Object obj)
String s1="hello";
String s2=new String("HellO");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
输出结果为 false false ;
equals比较的是内容区分大小写boolean equalsIgnoreCase(String str)String s3="hello";
String s4="Hello";System.out.println(s3==s4);
System.out.println(s3.equalsIgnoreCase(s4));
輸出結果為 false true ;
equalsIgnoreCase比较的是内容不区分大小写boolean contains(String str)String s1="hello";
System.out.println(s1.contains("ho"));输出结果为 false 这个方法是看“hello”中是否包含ho
记得不能分开,如果是he的话结果就是 trueboolean startsWith(String str)System.out.println(s1.startsWith("he"));
输出结果是:true
这个方法是求输入的这个字符串是否
以你定义的这个字符串开头的!
这里就是看 “hello”是否以he开头
如果换成e 结果就为false了。
boolean endsWith(String str)
System.out.println(s1.endsWith("llo"));
输出结果为:true 这个方法是求输入的这个字符串是否
以你定义的这个字符串结尾的!
这里就是看 “hello”是否以lo结尾
如果换位ll 结果就为false了。boolean isEmpty() "" null
s1="";System.out.println(s1.isEmpty());
输出结果为:true 这个方法是看 s1这个字符串是否为""
如果是就为true
注意:null1.null在Java中是作为常量存在的2.它表示对象不存在3.一个是可以作为初始值来用,一个是可以加快垃圾回收的速度
、String類別的其他功能
int length() String s1="heloool";System.out.println(s1.length()); 输出结果为:7 这个方法是来求一个字符串的长度的。 char charAt(int index) System.out.println(s1.charAt(0)); 输出结果为 h 这个方法是用来输入字符串的某个字符的地址坐标来 输出这个坐标所对应的值;如果输入2的话输出应该为l。 int indexOf(int ch) 和int indexOf(String str); System.out.println(s1.indexOf("he")); 输出结果为 0 这个方法是用来寻找输入的字符串(例如he)在当前字 符串(heloool)中首次出现的,首个字符的位置。 注意he要连写,并且不能为ho这种形式 他们都会 输出 -1 int indexOf(int ch,int fromIndex)和int indexOf(String str,int fromIndex) System.out.println(s1.indexOf("l",4)); 输出结果为 6 这个方法是用来寻找输入的字符串(例如l)在当前字 符串(heloool)中你定义的从哪个地址坐标(4)开始 出现的,首个字符的位置。 String substring(int start)和 String substring(int start,int end) //// String substring(int start) System.out.println(s1.substring(3)); 输出结果为:oool 这个方法是为了求出 s1这个字符串中 从3开始 包括(3)这个坐标,开始输出字符串,一直到结尾。 // String substring(int start,int end) System.out.println(s1.substring(2,5)); 输出结果为 loo 这个方法是为了求出 s1这个字符串中 从2开始 包括(2)这个坐标,开始输出字符串,一直到5(不包括5 这个坐标)。 注意:java有两个原则 一、就近原则;二、顾前不顾后原则。