字符串的常用方法

字符串的常用方法

第一部分:

  • isEmpty() 字符串是否长度为0
  • isBlank() 字符串是否为空(包含空包字符)
  • charAt(index) 获取指定索引位置的字符
  • codePointAt(index) 获取索引位置的字符码【JDK15】
  • getBytes(charset) 将字符串按指定编码转为流
  • new String()将流转为字符串‘()内是流’

第二部分:

  • equals(obj)/equalsIgnoreCase() 判断两个字符串是否相等/忽略大小写,判断两个字符串是否相等
  • compareTo() 判断字符串的大小
    1. >0 前者大于后者
    2. =0 两个字符串相等
    3. <0 后者大于前者

第三部分:

  • startsWith(str)/endsWitch(str) 判断字符串是否以…开头/结尾
  • contains(str) 是否包含某个指定的字串
  • indexOf(str)/lastIndexOf(str) 搜索str在字符串中第一次出现的索引位置,分别从 左/右 开始找,若未找到返回 -1

第四部分:

  • substring(offset,endIndex) 从字符串指定位置截取字符串,截取到指定位置,不包含endIndex对应的字符
    1. 截取长度 = endIndex - offset
    2. endIndex 超出字符串的最大长度则抛出异常
    3. endIndex 不传,则代表截取到尾部
    4. endIndex < 0 ,则抛出异常
  • replace(oldstr,newstr)
    • replaceAll(regex,newstr) 替换全部满足条件字符串
  • replaceFirst(regex,newstr) 替换第一个匹配的字符串(regex代表正则表达式)
  • split(regex,max=0) 拆分字符串,max允许拆分的最大次数,如果不设置,或者设置为<=0,代表 全部拆分

第五部分:

  • toLowerCase()/toUpperCase() 字符串 转为 小写/大写
  • trim() 方法移除字符串两侧的空白字符(空格、tab键、换行符)
    1. trim()方法无法删除掉Unicode空白字符
    2. 但是Character.is.Whitespace©方法可以判断出来
  • strip() 可以去掉 Unicode空白字符
  • repeat(n) 重复N次【JDK11】

了解部分:

  • toCharAraay() 转为字符数组
  • concat(str) 连接字符串,相当于+(了解即可)
  • matches(regex) 是否匹配某个正则【JDK14】

案例一

isEmpty(),isBlank(),charAt(),codePointAt(),getBytes()
// 创建一个空的字符串
String str = "abc";
// null 发生空指针异常
// 字符串长度是否为0
System.out.println(str.isEmpty());
// 字符串是否为空(包含空包字符)
System.out.println("str.isBlank() =  " + str.isBlank());

// 获取索引位置的字符
char c = str.charAt(1);
System.out.println(c);

// 获取索引位置的字符码
int i = str.codePointAt(1);
System.out.println(i);

//将字符串转为流;byte[] 在java中,通常表示 流
byte[] bytes = str.getBytes();
System.out.println(Arrays.toString(bytes));
// 将流转为字符串
String s = new String(bytes);
System.out.println(s);

案例二

equals(),equalsIgnoreCase(),compareTo()
String str = "hello world";

String str2 = new String("Hello world");

System.out.println("地址是否相等:" + (str == str2));

System.out.println("内容是否相等:" + str.equals(str2));
/*
	如果 比较 两个字符串的时候,其中一个 字符串是 字面量。
	那么在比较的时候

	null 代表 什么都没有,不能 调用 方法(非静态方法),因为 会产生所谓的空指针异常
	空指针异常 产生的原因:
		null 调用 equals

 */
/*
String str3 = null;
System.out.println(str3.equals(str));
// 报错:空指针异常
*/

System.out.println("忽略大小写比较内容是否相等:" + str.equalsIgnoreCase(str2));

String s1 = "hello";
String s2 = "world";
// 比较 s1 与 s2 谁更大
int i = s1.compareTo(s2);
System.out.println(i);
/*
	两个字符串,在比较大小的时候,是采用 逐个字符进行 Unicode编码的比较
		如果 返回 > 0,则 代表 前者 比 后者 大
		如果 返回 0 ,则代表两者一样大
		如果 返回 < 0,则代表 后者 比 前者 大
 */

String s3 = "中国";// “中” 20013
String s4 = "日本";// “日” 26085
// 获取索引位置的字符码
System.out.println(s4.codePointAt(0));
System.out.println(s3.compareTo(s4));

案例三

startsWith(),endsWith(),contains(),indexOf(),lastIndexOf()
String str = "13566237832";
//判断字符串是否以...开头/结尾
System.out.println(str.startsWith("135"));
System.out.println(str.endsWith("7832"));

// 判断 是否包含 ...
System.out.println(str.contains("32"));

// 判断字符串 ... 第一次出现的索引位置(从0开始)
// 如果不存在,显示 -1
int i = str.indexOf("238");
System.out.println(i);

// 从右检索,第一次出现的索引位置,若未找到 显示 -1
int n = str.lastIndexOf("3");
System.out.println(n);

案例四

substring(),replace(),replaceFirst(),split()
String str = "12312341234";
// 获取前三位
String prefix = str.substring(0, 3);
System.out.println(prefix);
// 截取 后四位
String substring = str.substring(str.length() - 4);
//String substring1 = str.substring(7, 11);
System.out.println(substring);

// 将手机号中间四位隐藏
// 获取中间四位
String middle = str.substring(0, 3);
System.out.println(middle);
// 使用 replace 方法替换。有Bug ,会替换所有相同的。
String newstr = str.replace(middle, "****");
// replaceFirst 替换第一个符合要求的内容
String newstr2 = str.replaceFirst(middle, "****");
System.out.println(newstr2);


//--------------
String text = "ztb:zhangsan:你:好";
// 通过 : 进行 分割字符串
String[] split = text.split(":");
System.out.println(split);

案例五

toUpperCase(),toLowerCase(),trim(),strip(),repeat()
// 请求方式 GET,POST
String type = "get";
if("GET".equals(type.toUpperCase())){
	System.out.println("请求方式GET");
}

String s = "asdasd";
if(!s.toLowerCase().equals(s)){
	System.out.println("包含大写字母");
}

char t = 0;
String xx = "abc" + t;
System.out.println(xx.trim().length());
System.out.println(xx.strip());

// 2 + 22 + 222 + 2222 + 22222

// repeat 重复 多少次
String r = "abc";
System.out.println(r.repeat(3));

/*String.valueOf()*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值