00018.03 String的常用方法(包含toUpperCase、toLowerCase、 toCharArray、编码、解码)char相关、byte相关

系列文章目录

前言

前面文章字符串对象罗里吧嗦讲了一大堆,现在我们来看字符串的方法

一、 String的常用方法系列一

在这里插入图片描述
这个就比较简单了

但是有些需要注意的地方
(1)int length():返回字符串的长度,返回的是字符的个数
因为String的内部(JDK1.9之前)用char[]实现,这个长度就是value数组的长度
(2)boolean isEmpty():是否是空字符串 必须要是空字符串或者字符串才行,如果是null(空指针异常)或者没有初始化的会报错
(3)String toLowerCase()、String toUpperCase()
(4)String trim() :去掉字符串的前后空白符
(5)String concat():拼接,等价于+

看一个问题为什么没有去掉空格
在这里插入图片描述
这个又回到之前我们说的,String每次都会new一个新对象
你打印的是老对象
所以必须要接收,这里的问题就是没有接收
在这里插入图片描述
在这里插入图片描述
拼接我们也看看
顺便猜一下,s3和s4地址是不是一样
在这里插入图片描述
在这里插入图片描述

变量跟变量拼接 肯定不是一个地址,这个不能忘记,常量跟常量拼接就是一样的地址
但是内容是一样的,用equals判断内容
在这里插入图片描述

二、String的常用方法系列二——和char相关

我们工作中也许经常用到toCharArray( ) 但是它是什么意思你是否还记得

(1)char[] toCharArray() 应用场景有很多比如 统计大写字母的个数
在这里插入图片描述

(2)char charAt(index) 取出某个位置的字符
在这里插入图片描述
(3)String(char[] arr)
字符串可以变成字符数组,那么字符数组能不能变成字符串呢

能,用此字符串构造器
在这里插入图片描述

(4)String(char[] arr,int offset, int count)
甚至还可以指定取几个
在这里插入图片描述
小结:
(1)char[] toCharArray()
(2)char charAt(index)
(3)String(char[] arr)
(4)String(char[] arr,int offset, int count)

三、String的常用方法系列三——和字节相关(即byte)或者说和编码相关

(1)byte[] getBytes():编码的方法,使用平台默认的字符编码进行编的 byte[] getBytes(编码方式):

什么叫平台默认?
在这里插入图片描述

首先我们想搞清楚一个概念:
什么叫编码,什么叫解码
编码:把字符–>字节的过程 编码是编给计算机看
解码:把字节–>字符的过程(与编码相反)解码是解给人看

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如上图,是什么原因造成的
我们需要明白一个概念
编码:对应ASCII码范围内,无论是用什么编码方式,结果都是一样的,一个字符对应一个编码值
如果不熟悉可以直接翻阅Notepat++
在这里插入图片描述
在这里插入图片描述
需要注意的是前面128个是全世界都一样的,后面的则不一定
即 编码:对于ASCII码范围内(0~127),无论用什么编码方式,结果都是一样的,一个字符对应一个字节的编码值
对于其他的字符,编码,结果不一定是几个字节,例如汉字:
UTF-8:变长的,但是大多数汉字都是3个字节
GBK、GB2312:固定2个字节
ISO8859-1:不支持中文,所有字符都变为1个字节

汉字一般是三个字节,比如 你很棒 应该就是9个字节
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
需要注意的是,有些编码后解码不回来,会丢数据
在这里插入图片描述
而其它的是能够找回来的
在这里插入图片描述
乱码:
(1)编码与解码字符集不一致
(2)缺字节

(2)new String(字节数组)

即解码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值