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方法(本地方法)
将手动创建的字符串对象置入常量池,并返回置入常量池之后的地址!
****
***