java string封装类_java工具类;String类

*字符串相关

8ce6e23c8ae9ed2dbe736bb08fe9cbab.png

1.String类

2.所属的包是java.lang包 不用导入

3.找寻构造方法创建对象

String s1="abc";//直接将字符串常量赋值给s1;

String ss=new String();//无参数构造方法创建空的对象;

String s2=new String("abc");//带String参数的构造方法创建对象

·  String s2=new String(byte[] value);//将数组中的每一个元素转化成对应的char组合成String

String s2=new String(char[] value);//将数组中的每一个char元素拼接成最终的String

String是一个非常特殊的引用数据类型 可以像基本数据类型一样 创建 赋值

4.String类的特性

String的不可变特性;

体现在两个地方:长度及内容

长度-->final修饰的数组 数组长度本身不变 final修饰数组的地址也不变;

内容-->private修饰的属性 不能在类的外部访问

在String类中包含一个数组;

private final char[] value;//存储String中的每一个字符

final最终的不可改变的-->地址不让改变;数组的长度本身不可变;

private 私有的 当前类中才可访问-->数组中的内容也不能改变;

*5.String类中常用的方法 20+

1.boolean=equals(Object obj);//继承Object类 重写啦 比较两个字符串中的字面值是否相等;

2.int = hashCode();//继承自Object重写啦  31*h+和;

3.int =compareTo(String str);//实现自Compare接口 实现啦 按照字典(unicode编码)索引的顺序比较;

360c3c327770996ed794d98b99e71329.png

4.String =toString();//继承自Object 重写啦 不再输出@hashCode (16进制的形式);输出字符串中的字面值;

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

5.char = charAt(int index);//"abc" 0--a

//返回给定index对应位置的那个char值(字符)

6.int = codePointAt(int index);//"abc" 0-97

//返回给定index对应位置的那个char所对应的code码

7.int=length();//返回字符串的长度(个数);(其实就是底层char[] value属性的长度)

注意:区别数组length是属性 String的length()是方法  集合size()方法;

8.String = concat(String);//将给定的字符串拼接在当前字符串之后;

注意:方法执行完毕需要接受返回值 String的不可变特性;

concat方法 与 ‘+’拼接的性能问题;concat方法快些;

若是遇到频繁的拼接字符串-->通常使用StringBuilder、StringBuffer

9.boolean=contains(CharSequence s);//判断给定的s是否在字符串中存在

10.startsWith(String prefix);//判断此字符串是否以prefix开头;

endsWith(string suffix);结尾

11.byte[]=getBytes();

char[]=toCharArray();

将当前的字符串转化成数组

12.int index=indexOf(int/String str [,int fromIndex]);

//四个方法重载,找寻给定的元素在字符串中第一次出现的索引位置;若字符串不存在,则返回-1

lastIndexOf();//找寻给定的元素在字符串中最后一次出现的索引位置 若不存在则返回-1;

13.boolean=isEmpty();

判断当前字符串是否为空字符串(length()是否为0);

注意:与null的区别;

14.replace();

replaceAll();

replaceFirst();

将给定的字符串替换成另外的字符串;

15.split(String regex [,int limit]);

按照给定的表达式将原来的字符串拆分开的

16.String=substring(int beginIndex [,int endIndex]);

将当前的字符串截取一部分;

从beginIndex开始至endIndex结束

若endIndex不写 则默认到字符串最后

17.toUpperCase();

toLowerCase();

将全部字符串转换成大写/小写

699bdc5c7696241c83bccb7147840247.png

18.trim();

去掉字符串前后多余的空格;

e5ab704ea55a3e97247978bf2444cb57.png

===============================================================

Regular有规律的 Expression表达式

正则表达式regex

一个带有一定规律的表达式

匹配字符串格式的

正则表达式通常的作用如下:

1.字符串的格式校验String类中提供的一个方法 matches("regex")

2.字符串的拆分及替换String类中提供的方法replace split

3.字符串的查找Pattern模式  Mather匹配器

14a70ddff68f0587648653b28f8303e4.png

d75ee44f79038d4707c053ec92f32f23.png

| 或者

如下的所有都用来描述字符出现的次数;

53be71ad005621ac9a352684d1ba6200.png

? 0-1次

* 0-n次

+ 1-n次

6be1f2280bf93bfe0c1ad57f48f7f807.png

eb0a4711355364a31a4f6bb14d8c67e2.png

08ffebc25d4344114d35ed75a3953737.png

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

995e15ed10ab13d802899f2ac416cedf.png

public class Test0517{

public static void main(String[] args){

String str="我-爱-你-中国我爱你中国";

//str=str.substring(3);//-你-中国我爱你中国

str=str.substring(2,5);//[2,5) 爱-你

System.out.println(str);

}

}

fd353cd63e2b072c212123c4f5890b94.png

public class Test0517{

public static void main(String[] args){

String str="我爱你中国我爱你中国";

//str=str.replace("中国","china");//我爱你china我爱你china

//str=str.replaceAll("中国","china");//我爱你china我爱你china

str=str.replaceFirst("中国","*");//我爱你*我爱你中国

System.out.println(str);

}

}

public class Test0517{

public static void main(String[] args){

String st="";

boolean v=st.isEmpty();

System.out.println(v);//true

}

}

public class Test0517{

public static void main(String[] args){

String a="abcda";

//int b=a.indexOf("a");//0

//int b=a.indexOf("k");//-1

//int b=a.indexOf("a",3);//从3号索引开始找 //4

//int b=a.indexOf("cd");//2

//int b=a.indexOf(98);//98号code码对应的字符//1

//int b=a.lastIndexOf("a");//4

int b=a.lastIndexOf("bd");//-1

System.out.println(b);

}

}

f42a26ed2fea171371b56c4338012e6b.png

2bbf7c6ccdfa9c938d3410e2895de1ef.png

public class TestString{

public static void main(String[] args){

byte[] a=new byte[]{65,97,48};

String b=new String(a);//unicode 码

System.out.println(b);//Aa0

char[] c={'h','e','l','l'};//必须是单引号,不可以是双引号

String str=new String(c,1,3);//第一个索引开始,取3个值

System.out.println(str);//ell 数字对应的字符;

System.out.println(str.equals(null));//false;

System.out.println(str.hashCode());//一串数字

String ab="abc";

String bc="bcd";

System.out.println(ab.compareTo(bc));

char x=ab.charAt(0);

System.out.println(x);//a

for(int i=0;i

char value=ab.charAt(i);

System.out.print(value+" ");//abc

int v=ab.codePointAt(i);

System.out.print(v+";"); //unicode码 (char)v 字符

}

System.out.println("-----------------");

//ab=ab.concat("jkl");

ab=ab+"jkl";

System.out.println(ab);//abcjkl

/*

String s1="abc";

String s2="abc";

String s3=new String("abc");

String s4=new String("abc");

System.out.println(s1==s2);//true

System.out.println(s1==s3);//false

System.out.println(s3==s4);//false

System.out.println(s1.equals(s2)); //true

//将继承自Object中的equals重写了,equals比较值;

System.out.println(s1.equals(s3));

System.out.println(s3.equals(s4));

*/

}

}

bae501915c8ec332808e9d795a04a4ae.png

==================================================

public class TestString{

public static void main(String[] args){

String s1="abc";

String s2="abc";

String s3=new String("abc");

String s4=new String("abc");

System.out.println(s1==s2);//true

System.out.println(s1==s3);//false

System.out.println(s3==s4);//false

System.out.println(s1.equals(s2)); //true

//将继承自Object中的equals重写了,equals比较值;

System.out.println(s1.equals(s3));

System.out.println(s3.equals(s4));

}

}

7a9e063c3248aadfdd7258402953613b.png

fdaafd1d844f1a937537610142b0db11.png

adbdaeabc396e1abfbf17f6b99902ebd.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值