java的string类_java基础之String类

String

String类的两种实例化方法

String类字符串常量与StringBuffer的区别

String类对正则的支持

1.1字符串:

一串字符组成字符串,CharSequence是字符串的最高的父接口,常用的实现类有两个:

·String

·StringBuffer

不管是String对象还是StringBuffer的对象,都叫做字符串对象,简称字符串。

1.2类对象的实例化方式

两种实例化方式:

·通过直接赋值完成

·通过new关键字调用String的构造方法

String s1 = "张三";//直接使用赋值形式完成字符串对象实例化

String s2 = newString("张三");//通过new关键字实例化字符串对象

在开发中,我们一般只会使用第一种方式完成字符串的实例化,使用直接赋值的形式,会先去堆内存空间查找是否有相同内容的空间,如果有则直接指向此空间,如果没有则开辟新的空间并且赋值。

String类提供了length()方法用于取得字符串的长度。

packagecom.wanczy.stringDemo;public classStringDemo01 {public static voidmain(String[] args) {

String s1= "张三";//直接使用赋值形式完成字符串对象实例化

String s2 = new String("张三");//通过new关键字实例化字符串对象

System.out.println(s1.length());//取得字符串的长度

}

}

注意:

对于字符串的比较,因为是对象,所以不能使用==来比较,必须使用equal()方法比较内容是否相同。

packagecom.wanczy.stringDemo;public classStringDemo01 {public static voidmain(String[] args) {

String s1= "张三";//直接使用赋值形式完成字符串对象实例化

String s2 = new String("张三");//通过new关键字实例化字符串对象

System.out.println(s1);

System.out.println(s2);

System.out.println(s1== s2);//比较堆内存空间的地址是否相同

System.out.println(s1.equals(s2));//比较字符串内容是否相同

"".equals(s1);//使用""围起来的就是字符串对象

}

}

注意:字符串一旦申明,则无法改变,指的是堆内存空间的内容无法改变。

/*for (int i = 0; i < 100; i++) {

s1 = s1+i;//效率非常低

}*/StringBuffer sb= newStringBuffer(s1);for (int i = 0; i < 100; i++) {

sb.append(i);//追加

}

System.out.println(sb);

}

String类的常用的操作方法有很多:

·构造方法

·public String(byte[] bytes):实例化字符串对象,参数是字节数组

·public String(byte[] bytes,  Charset charset):以指定的编码格式将字节数组转换成字符串

·public String(byte[] bytes,   int offset,   int length):将字节数组的一部分转换成字符串

·public String(char[] value):将字符数组转换成字符串

·public String(char[] value,  int offset,  int count):将字符数组的一部分转换成字符串

·普通方法

·public String concat(String str) 和+号效果相同。

·public boolean endsWith(String suffix):是否以指定的字符串结尾,不支持正则

·public boolean equals(Object anObject):判断内容是否相同

·public byte[] getBytes():将字符串转化成字节数组

·public byte[] getBytes(Charset charset):转换成指定编码格式的字节数组

·public int indexOf(String str):是否存在指定的字符串,存在返回下标,不存在返回-1

·public boolean isEmpty():判断是否为空

·public int lastIndexOf(String str):返回最后一次出现的下标,不存在返回-1

·public int length():返回字符串长度

·public boolean matches(String regex):字符串匹配方法,支持正则

·public String replace(char oldChar, char newChar):进行单个字符替换

·public String replace(CharSequence target,  CharSequence replacement):字符串替换

·public String replaceAll(String regex,  String replacement):替换全部匹配的字符串

·public String replaceFirst(String regex,  String replacement):替换第一个匹配的字符串

·public String[] split(String regex):字符串分割,支持正则分割

·public boolean startsWith(String prefix):判断是否以指定的字符串开始

·public String substring(int beginIndex,  int endIndex):字符串截取,从beginIndex开始,到endIndex -1 结束

·public char[] toCharArray():转换成字符数组

·public String toLowerCase():所有的大写变小写

·public String toUpperCase():所有的小写变大写

·public String trim():去掉字符串前后空格

·public static String valueOf(基本数据类型):将基本数据类型转换成字符串

2.String类对正则的支持,主要是体现在支持正则的方法上面:

·匹配

·替换所有

·替换第一次匹配

·分割

packagecom.wanczy.stringDemo;public classStringDemo03 {public static voidmain(String[] args) {//String s = "12341a2432143";//if(s.matches("\\d+")){//System.out.println("全部由数字组成");//}else{//System.out.println("不全部是由数字组成");//}//String s = "asd2323asdf444sadf34";//s = s.replaceAll("\\d+", "大家好才是真的好");//替换全部匹配内容//System.out.println(s);//String s = "asd2323asdf444sadf34";//s = s.replaceAll("a", "大家好才是真的好");//System.out.println(s);//String s = "asd2323asdf444sadf34";//s = s.replaceFirst("\\d+", "大家好才是真的好");//替换第一次匹配内容//System.out.println(s);

String s= "asd2 323a sdf 44 4s,adf 3,4";

String sa[]= s.split(" ");for (int i = 0; i < sa.length; i++) {

System.out.println(sa[i]);

}

}

}

3.总结

·String类对象的实例化

·要去理解String类的一些构造方法(byte数组转换成指定编码的字符串,char数组转换成字符串)

·将StringBuffer对象转换成String类对象(toString()方法,还有就是new String(StringBuffer sb))

·学会使用String类中的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值