为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第2天 JavaString类

标签:
活动

学习课程名称:Java体系课

章节名称:String类

课程内容:

  • 创建字符串
  • 字符串与字节数组转换
  • String的常用方法
  • StringBuilder类

学习收获

  • 创建字符串
String s1 ="imooc";//会先去常量池中查看该常量是否存在,如果存在就直接赋值给字符串引用,如果不存在,就先在常量池中创建,再赋值给字符串引用
String s2 = new String();//用new关键字创建字符串对象,得到一个空串""
String s3 = new String("imooc");//使用new关键字创建的字符串会先去堆中创建一个对象,然后会去常量池中查找,如果常量池中没有,就放一份在常量池,如果有了,就不再放到常量池中了。
char[] chs={'i','m','o','o','c'};
String s = new String(ch);//使用字符数组创建字符串
char[] chs={'i','m','o','o','c'};
String s = new String(ch,1,2);//可以使用字符数组的一部分创建字符串。1表示起始位,2表示元素数量,这里得到"mo"
byte[] b={54,69,70,71,72};
String s=new String(b);
String s2=new String(b,1,2);//可以利用字节数组或者字节数组的一部分生成字符串,(多用于存储传输的二进制数据)在使用字节数组时也可以指定字符集,例如String s3 = new String(b,"utf-8");

  • 字符串与字节数组转换
    关于字符编码的说明字节用byte类型表示,byte类型范围为-128-127之间的整数
    GBK格式:2个byte数据表示1个汉字,字母和空格用一个字节表示;utf-8格式:3个byte数据表示1个汉字,字母和空格用一个字节表示。
  • String类的常用方法
1int length()  返回当前字符串的长度
2int indexOf(int ch)  查找ch字符在该字符串中第一次出现的位置
3int indexOf(String str) 查找str字符串在该字符串中第一次出现的位置(int dexOf(String str,int i)从位置i开始,str第一次出现的位置)
4int lastIndexOf(int ch)  查找ch字符在该字符串中最后一次出现的位置
5int lastIndexOf(String str)  查找str字符串在该字符串中最后一次出现的位置
6、String substring(int beginIndex)  获取从beginIndex位置开始到结束的子字符串
7、String substring(int beginIndex,int endIndex)  获取从beginIndex到endIndex位置的子字符串(不包括endIndex的字符)
8、String trim() 返回除了前后空格的字符串
9boolean  equals(Object obj)  将该字符串与指定对象比较,返回truefalse(比较内容)
10、String toLowerCase()  将字符串转化为小写
11、String toUpperCase()  将字符串转化为大写
12char charAt(int index) 获取字符串中指定位置的字符
13、String [] split(String regex,int limit) 将字符串分割为子字符串,返回字符串组
14byte[] getBytes() 将该字符串转化为byte数组(也可以加格式参数,如“GBK”)
15、String replace(String str1,String str2) 将与字面目标序列匹配的字符串的每个子字符串替换为指定的字面替换序列。 替换从字符串开始到结束,例如,在字符串“aaa”中用“b”替换“aa”将导致“ba”而不是“ab”
16int 	compareTo(String str);按字典顺序比较两个字符串,返回值为0表示相等字符串,小于零表示字符串参数大,大于零表示字符串参数小
17、String concat(String str);将指定的字符串连接到该字符串的末尾。
  • ==和equals方法的区别
    ==比较地址,String类重写了equals,用于比较内容
  • String的不可变性
    String对象一旦被创建,则不能被修改,是不可变的。所谓的修改其实是创建了新的对象,所指向的内存空间不变
  • StringBuilder类
  1. String具有不可变性,而StringBuilder不具备
  2. String比StringBuilder的执行效率要低,因为在运行时产生一些String对象,这样会耗费一些时间,当频繁操作字符串时,使用Stringbuilder
  3. StringBuilder和StringBuffer基本相似,StringBuffer是线程安全的,StringBuilder则没有,所以性能略高
  4. 构造方法
StringBuilder()//创建1个空串,默认16字符的容量
StringBuilder(int capacity)//构造一个没有字符的字符串构建器,由 capacity参数指定的初始容量。
StringBuilder(String str)//构造一个初始化为指定字符串内容的字符串构建器。
  1. StringBuilder中的成员方法
StringBuilder append(各类数据类型参数)//末尾处添加内容
char charAt(int index);//获取索引处字符
indexOf(String str);//获取目标字符串的索引
StringBuilder delete(int start,int end);//删除指定位置字符串
StringBuilder insert(int offset,数据类型参数);//指定位置添加内容
int length();//返回字符串长度
StringBuilder replace(int start,int end,String str);//替换
String substring(int start,int end);//截取目标位置字符串
toString();//将StringBuilder对象转换为String类型对象

课程截图

图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
0
获赞与收藏
0

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消