String类
1.字符串是常量,创建之后不允许修改;所以可以共享使用
2.创建字符串的3+1种方式
*
3种构造方法
*
public String(); //创建一个空白字符串
*
public String(char [ ] array); //根据字符数组的内容,来创建对应的字符串
*
public String(byte [ ] array); //根据字节数组的内容,来创建对应的字符串
*
1种直接创造
*
直接双引号引用:String name=“Abner”;
packagecn.com.abner.pack.String;
public class StringDemo {
public static void main(String[] args) {
//空参构造
String it=new String();
System.out.println("第一个字符串是:"+it);
//字符数组创建
char [] chararray= {'A','B','C'};
String it2=new String(chararray);
System.out.println("第二个字符串是:"+it2);
//字节数组创建
byte [] bytearray= {97,98,99};
String it3=new String(bytearray);
System.out.println("第三个字符串:"+it3);
}
}
3.字符串常量池
*
1.对于引用类型来说,==进行的是地址值的比较
*
2.双引号直接写的字符串在常量池中,new的不在池中
4.“==” /equals
*
==:进行的是对象地址的比较
*
对象内容的比较
*
字符串.equals(字符串) 【返回值boolean]】推荐把常量字符串写在前面
*
字符串.equalsIgnoreCase(字符串) 【返回值boolean]】忽略(字母)大小写进行比较
packagecn.com.abner.pack.String;
public class StringDemo2 {
public static void main(String[] args) {
String st1="abc";
String st2="abc";
char[] chararray= {'a','b','c'};
String st3=new String(chararray);
String st4="ABC";
//对象地址的比较
System.out.println(st1==st2); //true
System.out.println(st1==st3); //false
System.out.println(st2==st3); //false
//对象内容比较
System.out.println(st1.equals(st2)); //true
System.out.println(st1.equals(st3)); //true
System.out.println(st1.equals(st4)); //false
//忽略字母大小对象内容比较
System.out.println(st1.equalsIgnoreCase(st4)); ////true
}
}
5.String分割方法
*
字符串.split( 分割规则);【字符串数组】 //按照参数规则分割为若干字符串数组
packagecn.com.abner.pack.String;
public class StringDemo6 {
public static void main(String[] args) {
String a="aaa,bbb,ccc";
String[] b=a.split(",");
for(int i=0;i<b.length;i++) {
System.out.print(b[i]+" "); //aaa bbb ccc
}
//参数都是一个正则表达式,英文中的“.”,必须 要用“\\.”
String c="aaa.bbb.ccc";
String[] d=c.split("\\.");
for(int i=0;i<d.length;i++) {
System.out.print(d[i]+" "); //aaa bbb ccc
}
}
}
6.String的转换方法
*
字符串.toCharArrays( ); 【返回为字符数组】 //转换字符数组
*
字符串.getBytes( ); 【返回为字符数组】 //转换字节数组
packagecn.com.abner.pack.String;
public class StringDemo5 {
public static void main(String[] args) {
//
char[] a="holloworld".toCharArray();
System.out.println(a[0]); //h
System.out.println(a.length); //10
//
byte[] b="abc".getBytes();
for(int i=0;i<b.length;i++) {
System.out.print(b[i]+" "); //97 98 99
}
}
}
7.String的截取方法
*
字符串.substring(int i) 【返回值是String】 //截取从参数位置到结尾的字符串
*
字符串.substring(int begin,int end) 【返回值是String】 //截取从begin到end中间的字符串(end包含左不包含右)
packagecn.com.abner.pack.String;
public class StringDemo4 {
public static void main(String[] args) {
String a="Holloworld";
//截取从参数位置到结尾的字符串
String b=a.substring(5);
//截取从begin到end中间的字符串(end包含左不包含右)
String c=a.substring(4, 7);
System.out.println(b+" "+c);
}
}
8.String常用方法
*
字符串.length( ); 【返回int】//获取字符串中字符的个数
*
字符串1.concat(字符串2);【返回值字符串】 //将字符串1和字符串2拼接
*
字符串.chatAt( int i); 【字符】 //i位置的字符 从0开始
*
字符串.indexOf(字符串) 【返回值,int]】 //查找参数字符串在字符串中第一次索引的位置,没有返回-1;
packagecn.com.abner.pack.String;
public class StringDemo3 {
public static void main(String[] args) {
//获取字符串中字符的个数
int a="asasdsafdsfdsgdfg".length();
System.out.println(a); //17
//将字符串1和字符串2拼接
String st="Hollo";
String name="Abner";
String st1=st.concat(name);
System.out.println(st1); //HolloAbner
//i位置的字符 从0开始
char b="asasdsafdsfdsgdfg".charAt(1);
System.out.println(b); //s
//查找参数字符串在字符串中第一次索引的位置,没有返回-1;
int w="asasdsafdsfdsgdfg".indexOf("sa");
System.out.println(w); //1
int e="asasdsafdsfdsgdfg".indexOf("oo");
System.out.println(e); //-1
}
}
五月 09, 2019. Created by XMind