String原理

2.3字符串查找

在字符串中返回指定索引位置的字符char charAt(int index):一定要注意索引的合法性[0,n)

boolean contains(String regex):在当前字符串中查找是否包含指定字符串


2.4 字符串与其他类型的转换

2.4.1 字符串和数值互相转换

注意:不管什么类型转为字符串对象,统一推荐使用String.valueOf(任意类型),当传入的是自定义类型时,默认调用toString进行转换,要求我们在自定义的类型中覆写toString()方法。

 

******将字符串对象转为相应的基本类型:使用各个包装类的parseXXX方法进行转换,这个转换有可能会报错(当字符串中出现非数字时,会报错~)

**转为布尔值时,若出现不合法的布尔值字符串,统一转为false处理。


2.4.2 大小写转换 -> 仅限于英文字母


2.4.3 字符串转数组

1.*** str - > char[] ***    toCharArray : char[]

2. str - > byte[]     getBytes() : byte[] 按照当前操作系统默认编码转为字节数组

当进行网络编程或文件IO操作时,需要将字符串序列转为一个个字节

将来在Web开发中碰到乱码,99%都是编码和解码的规则不同

编码使用UTF-8,解码却使用GBK,一定会乱码。


编码:将任意字符按照指定的规则转为数字就称为编码

比较常用的编码规则:

ASCII:专门针对英文字母的编码,'a' ---> 97,不管哪种编码格式,针对英文字母的转换都会采用ASCII的转换规则。

GB2312:只包含繁体中文

GBK:专卖针对中文的编码,包含繁体中文,一个中文字符转为GBK编码对应2个字节

UTF-8:世界上所有语言都可以通过UTF-8来得到转换。一个中文字符转为UTF-8 对应3个字节


2.4.4  字符串格式化 -> 类似prinf的格式化输出

只不过此时不输出,只是将字符串按照指定格式转换~

String.format(格式);


2.5 字符串替换操作


 ***2.6 字符串截取操作***

 

 举例:如何通过截取 + 转换,实现传入任意单词,实现首字母大写的操作 ~~


2.7字符串拆分

ch

此处的limit长度就有三种情况:limit < 拆分后的字符串数组长度(当拆分达到limit长度,字符串就不再拆分了)limit >= 拆分后的字符串数组长度,则相当于全部拆分~

 ***eg:在字符串拆分时,遇到特殊的拆分格式,需要特殊处理

注意:.操作符在Java中属于特殊字符     引用操作符~

碰到类似字符拆分都需要进行转义处理 \\

拆分一个IP地址:根据IP地址来判断用户的区域

192.168.1.1 => 本机地址


字符串去除空格tirm方法,只能去掉字符串左右空格,中间的空格保留

String str = " hello world "; => tirm() "hello world"


 3.字符串常量的理解

再谈字符串对象的产生方式

Java使用"称为字符串常量,为了提高程序的运行速度,节省空间,JVM会维护一个字符串常量池"

从字符串常量第一次出现,则产生新对象并将该对象置入常量池中;后序若再次出现该字符串常量,不会产生新对象,直接复用常量池中的已有对象,直接赋值默认会从常量池中取对象。

解析://直接赋值法,默认都从常量池中取出对象

String s1 = "hello";第一次出现,产生新对象,入池

String s2 = "hello";第二次出现,不会产生新对象

""双引号内容都是字符串常量,都是字符串对象



 intern方法,入池方法 native方法(本地方法)

将手动创建的字符串对象置入常量池,并返回置入常量池之后的地址!

****

 

 ***

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鹿小伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值