常用类String

本文介绍了Java中的String类,它代表不可变的字符序列,字符串字面值存储在常量池中。文章详细讲解了String类的常用方法,如intern()、endsWith()、startsWith()、contains()以及各种字符串操作,如替换、分割、转换大小写等,并提供了示例代码进行说明。
摘要由CSDN通过智能技术生成

start…


一、String类:

  1. 简述:
  • String类代表不可变的字符序列,Java中所有的字符串字面值(如:“abc”)都是由此类实现的,它的字符内容存在一个字符数组value[]中。通过字面量的方式赋值,字符串值声明在常量池中, 常量池中只会声明一个不相同的值。
//通过字面值生成字符串变量:
String str = "abc";
  1. 常用方法:
  • intern(void):返回常量池中的值
//通过关键字new生成字符串变量,这样生成会将字符串变量生成在堆空间中,然后指向常量池,通过==无法直接比较值
String str1 = new String("abc");
System.out.println(str == str1)//输出false
System.out.println(str.intern() == str1.intern()) //输出true
  • boolean endsWith(String str1):判断字符串是否以指定的字符串结尾
  • boolean startsWith(String str1):判断字符串是否以指定的字符串开头
  • boolean contains(String str1):判断字符串中是否包含指定字符串
System.out.println(str.endsWith("c"));//输出true
System.out.println(str.startsWith("c"));//输出false
System.out.println(str.contains("b"));//输出true
  • int indexOf(String str1):返回指定字符串出现的位置
  • int indexOf(String str1,int fromIndex):从fromIndex下标开始检索。上种方式相当于默认0开始检索
  • int lastIndexOf(String str1):从后面往前搜索,返回值和indexOf一样
  • int lastIndexOf(String str1,fromIndex): 从fromIndex下标开始检索。上种方式相当于最后一个下标开始检索。
System.out.println(str.indexOf("b"));//输出1,如果没有输出-1
System.out.println(str.indexOf("b",1));
System.out.println(str.lastIndexOf("a"));//输出0
System.out.println(str.lastIndexOf("a",2));
  • String replace(char ch1,char ch2):用ch2替换所有的ch1
  • String replace(String str1,String str2):用str2替换所有的str1
  • String replaceAll(String regex,String str2):用str2替换所有匹配的正则表达式regex
  • String replaceFirst(String regex,String str2):用str2替换第一个匹配的正则表达式regex
String str = "abcabcabc"//定义一个新的str,用于之后的计算
System.out.println(str.replace('a','d'));//输出dbcdbcdbc
System.out.println(str.replace("ab","*"));//输出*c*c*c
System.out.println(str.replaceAll(".","*"));//输出*********,在正则表达式中,'.'代表一个字符
System.out.println(str.replaceFirst(".","*"));//输出*bcabcabc
  • boolean matches(String regex):判断是否字符串是否匹配指定的regex
System.out.println(str.matches("..c..c..c"));//输出true
  • String[] split(String regex):根据正则表达式regex分割字符串成字符串数组
  • String[] split(String regex,int limit):同上,limit表示最多划分的个数
String[] strArr = str.split("b");
for(String i : strArr){
	System.out.print(i + " ");//输出a ca ca c
}
String[] strArr = str.split("b",3);
for(String i : strArr){
	System.out.print(i + " ");//输出a ca cabc
}
  • int length():返回字符串的长度
System.out.print(str.length());//输出9
  • char charAt(int index):返回index索引处的字符
System.out.print(str.charAt(0));//输出a
  • boolean isEmpty(void):判断字符串是否为空
System.out.print(str.isEmpty());//输出false
  • String toLowerCase():将字符串所有字符转成小写
  • String toUpperCase():将字符串所有字符转成大写
String str2 = "aBcDeFg";
System.out.print(str2.toLowerCase());//输出abcdefg
System.out.print(str2.toUpperCase());//输出ABCDEFG
  • String trim():去除字符串前面和后面的空格,然后返回
String str3 = "   abc  de  ";
System.out.print(str3.trim());//输出abc  de
  • boolean equals(String str2):判断字符串是否与字符串str1的内容相同
  • boolean equalslgnoreCase(String str2):同上,区分大小写
String str1 = "abc";
String str2 = "abC";
System.out.print(str1.equals(str2));//输出false。
System.out.print(str1.equalsIgnoreCase(str2));//输出true
  • String concat(String str2):用字符串与字符串str2连接,等价"+"
str1 = str1.concat(str2);
System.out.print(str1);//输出abcabC
  • int compareTo(String str2):比较两个字符串的大小,第一个字符串大返回正数,第二个大返回负数,一样大返回0
System.out.print(str1.compareTo(str2));//输出32,字符串比较大小的方式是从左往右一个字符一个字符比
  • String substring(int beginIndex):返回包括索引beginIndex在内及索引后面的子字符串
  • String substring(int beginIndex,int endIndex):返回包括索引beginIndex在内及 后面到索引endIndex前面的子字符串
System.out.print(str.substring(1));//输出bcabcabc
System.out.print(str.substring(1,3));//输出bc
  1. String与其他数据类型的转换:
  • String > 基本数据类型
int num = Integer.parseInt(str);//要求str是类似于"123"的字符串,否则会报错,其他类型转换类似
  • 基本数据类型 > String
String str1 = String.valueOf(num);//第一种方式
String str2 = num + "";//第二种方式
  • String > char[]
char[] charArr = str.toCharArray();
  • char[] > String
String str = String.valueOf(charArr);//第一种方式
String str = new String(charArr);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

HeiCloud

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

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

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

打赏作者

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

抵扣说明:

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

余额充值