java常用类

字符串:
String : 
局部变量在栈区 
new出来的东西在堆区 (划分空间,划分属性,初始化值,执行构造方法里面的代码)
String s = "hello";存在数据段的常量池并且加载期就存在(多个并且值相同是指向同一个对象)
String s = new String("hello");中的hello在加载期就存在,而运行起来又产生一个hello在堆区(new 一个产生一个对象)

语法特殊性:提供了String常量对象;==比较变量的值
内存存放的特殊性:String常量对象在加载期就会被产生,绑到数据段的字符串常量池当中,运行起来以后需要使用,直接到常量池取就可以了

String对象内容不可变:
例如:String str = "hello"; str += "world"; 其实是在(字符串常量)池产生了一个新的值helloworld用str去指向它;
String str = new String("hello"); str += "world"; 其实是在(堆区)产生了一个新的值helloworld用str去指向它;

提供了大量的字符串操作方法:
1 跟字符数组有关的方法:
String str = "hello";
str.lengt(); //String对象的长度;
str.toCharArray(); //把String对象转换成char数组;
str.charAt(0); //根据下标得到String对象该下标位置的字符
str.indexOf('h'); //得到某个字符在String对象当中首次出现的下标位置,如果没有找到返回-1
str.lastIndexOf('h'); //得到某个字符在String对象当中最后一次出现的下标位置,如果没有找到返回-1

2 跟字母有关的方法:
str.toUpperCase(); //得到一个全大写的新String对象
str.toLowerCase(); //得到一个全小写的新String对象
str.equalsIgnoreCase(); //忽略大小写比较值相等
str.compareTo(); //让两个String做字典顺序比较,返回两数之差
str.compareToIgnoreCase(); //让两个String忽略大小写做字典顺序比较,返回两数之差

3 跟操作技巧有关的方法:
str.contains("el"); //判断一个String对象是否包含另一个子串
str.startsWith("he"); //判断一个String对象是否以一个子串开头
str.endsWith("lo"); //判断一个String对象是否以一个子串结尾
str.replace('l','o'); //将String对象中的某个字符替换成另一个字符
str.replace("l","temp"); //将String对象中的某个子串替换成另一个String对象
str.replaceAll("l","temp"); //将String对象中的某个子串替换成另一个String对象,支持正则表达式
str.replaceFirst("l","temp"); //将String对象中的首次出现的某个字符串替换成另一个String对象,支持正则表达式

4 特殊方法
str.trim(); //去掉String对象的前后空格(只要用户输入字符串就要无条件trim一个)
str.split("-"); //根据分隔符拆分字符串,当以分隔符结尾的时候,后面部分将不再拆分,返回一个String对象数组
str.matches();, //做正则表达式校验
str.isEmpty(); //当且仅当 length() 为 0 时返回 true。
str.subSting(0,10); //字符串截取,返回一个新字符串,它是此字符串的一个子字符串。

正则表达式:regex
用来规范字符串格式的一种表达式,其表现形式就是字符串,直白的说,任何一个字符串都是正则表达式;
用来定义字符串格式的模板,其本身也是一个字符串
[ ]: 代表一个字符,在内部填写这个位置可以放哪些符号
{ }: 代表表达式出现的次数,{m,n}(最小m次,最大n次), {m,}(最小m次,最大不限), {m}(必须出现m次), *(任意次), ?(0到1次), +(一次或多次);
( ): 加 | 代表分组可选

大量字符串拼接时:可选择
StringBuffer:内容可变的
也是Java中表示字符串的一种数据类型,与String的区别是它的内容可变
由于StringBuffer内容可变,通常我们在做大量字符串拼接时使用它比使用String更有效率
StringBuffer的方法没有String丰富,主要都是类似于append/insert这样的根拼接有关系的方法

StringBuilder:内容可变的
StringBuilder和StringBuffer非常类似,无论是内容可变,还是API

StringBuffer与StringBuilder区别:StringBuffer是线程安全的(多个线程用),StringBuilder是线程不安全的(单个线程用),但是线程安全的效率低,线程不安全的效率高。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值