String类常用方法

String类字符串

1.字符串的常用方法:(字符串构造方法,字符串仍然是类)
在这里插入图片描述
1和4为常用字符串对象产生方式

2.字符串String本身并没有存储数据,数据都在内部的字符数组中存储,String类只是将字符数组套了一个类,并向外部提供了很多方便好用的方法而已
String = char[]+各种好用的方法

JDK中String类的源码
在这里插入图片描述
3.String对象的比较
使用"==”比较两个字符串对象是否指向相同的地址

String s1 = new String( “hello”);
string s2 = new String( “hello”);
string s.3= s1;
// fasle
System.out.printin(s1 s2);
// true
system.out.println(s1 s3);

使用equals方法判断两个字符串对象是否内容相同,按照Unicode编码一个个字符进行比较,当两个字符串的字符数组对应的内容完全相同,equals才返回true

String s1 = new String( “hello” );
String s2 = new String( “hello”);
String s3= s1;
String s4 = new String( “HELLO” );
// true
System.out.println(s1.equals(s2));
// false
system.out.println(s1.equals(s4));

equalsIngnoreCase不区分大小写的字符串对象比较:

// true
System.out.println(s1.equalsIngnoreCase(s4));

使用compareTo方法进行两个字符串的大小比较(默认区分大小写)
1.先按照两个字符串对应的字符进行编码比较,若碰到第一个不相等的字符,直接返回编码差值
在这里插入图片描述
2.若前n个字符完全相等(n是两个字符串中的最小值),返回值为两个字符串的长度差

字符串查找

字符串查找:其实本质就是在内部的字符数组上进行遍历寻找
char charAt(int index):返回字符串上指定索引位置的字符

String str = “absdef”;
//查找字符串第四个位置的元素
char c = str.charAt( 3);
System.out.println( c); // d

取出任意一个字符串中的每个字符并输出 (循环+ charAt)

String str = “absdef”;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
system.out.print(c + " ");
}

判断一个字符是否是数字字符
在这里插入图片描述

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

判断str中是否包含子串regex(自身也算子串):

String str = “abcdef” ;
System.out.println(str.contains(“bcd”)); // true
System.out.println(str.contains(“bcd”)); // true
System.out.println(str.contains(“bse”)); //false

从前向后寻找指定内容 方法:

int indexOf(int ch)
// 返回ch第一次出现的位置,没有返回-1
int indexOf(int ch, int fromIndex)
// 从fromIndex位置开始找ch第一次出现的位置,没有返回-1
int indexOf(String str)
// 返回str第一次出现的位置,没有返回-1
// contains方法其实就是根据indexOf方法的返回值来实现的
int indexOf(String str, int fromIndex)
// 从fromIndex位置开始找str第一次出现的位置,没有返回-1

从后向前寻找指定内容方法:

int lastIndexOf(int ch)
// 从后往前找,返回ch第一次出现的位置,没有返回-1
int lastIndexOf(int ch, int fromIndex)
// 从fromIndex位置开始找,从后往前找ch第一次出现的位置,没有返回-1
int lastIndexOf(String str)
// 从后往前找,返回str第一次出现的位置,没有返回-1
int lastlndexOf(String str, int fromlndex)
// 从fromIndex位置开始找,从后往前找str第一次出现的位置,没有返回-1

字符串与其他类型的转换

字符串和数值互相转换

在这里插入图片描述
(当传入的是自定义类型时,默认会调用toString进行转换,要求我们在自定义的类型中覆写 toString方法)

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

在这里插入图片描述
(转为布尔值时,若出现不合法的布尔值字符串,统一转为false处理)

字符串转数组
在这里插入图片描述

当进行网络编程或文件IO操作,需要将字符串序列化为一个个字节
str -> byte[] getBytes() : byte[ ]按照当前操作系统默认编码转为字节数组
在这里插入图片描述

编码将任意字符按照指定的规则转为数字就称为编码
比较常用的编码规则︰
ASCII:专门针对英文字母的编码, a’->97,不管哪种编码格式,针对英文字母的转换都会采用ASCII的转换规则
GBK∶专门针对中文的编码,包含繁体中文·一个中文字符转为GBK编码对应2个字节
GB2312∶只包含简体中文
UTF-8:世界上所有语言都可以通过UTF-8来得到转换― 一个中文字符转为UTF-8 3个字节

在这里插入图片描述

字符串格式化

—>类似prinf的格式化输出,只不过此时不输出,只是将字符串按照指定格式转换~
String.format(格式);
在这里插入图片描述

字符串替换操作

在这里插入图片描述

Stringstr = “hello world”;
System.out.println(str.replaceAll( “l”, “2”)); // he22o worl2d
System.out.println(str.replaceFirst( “l”, “2”)); // he2lo world

有些字在特殊场合无法输出,背后就是指定字符串的识别和替换,识别特定的字符串,如转换为*

字符串截取

String substring(int beginIndex) [start…str.length)
// 从指定索引截取到结尾
String substring(int beginIndex, int endlndex) [start,end)
// 截取部分内容

在这里插入图片描述

思考,如何通过 截取+转换 实现传入任意单词,实现首字母大写的操作
在这里插入图片描述

字符串拆分

String[ ] split(String regex)
// 按照指定格式regex将原字符串拆分为若干个子字符串
String[ ] split(String regex, int limit)
// 按照regex将原字符串拆分,限制拆分后字符串数组的长度为limit长度

当limit<拆分后的字符串数组长度
在这里插入图片描述
当拆分达到指定limit长度,字符串就不再拆分了(包括超出长度的情况)

在字符串拆分时,遇到特殊的拆分格式,需要特殊处理
拆分一个IP地址︰根据IP地址来判断用户的区域
192.168.1.1 =>本机地址
在这里插入图片描述
"."操作符在Java中属于特殊字符引用操作符
碰到类似字符拆分都需要进行转义处理 “\.” ( & | + - * / 等等)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值