Java笔记|字符串常用操作

String类

1. 创建字符串、获取长度

String类是不可改变的,只能赋值。
如果想对字符串做修改,需要用StringBuffer&StringBuilder类。

String str1 = "abc";
//直接创建方式
char[] strarray = {'a','b','c'};
String str2 = new String(strarray);
//提供一个字符数组 参数来初始化字符串

int len = str1.length();
//获取长度

2.查找字符在字符串中的索引

int idx = str.indexOf("a");
//字符a在str中首次出现的位置
int idx = str.lastIndexOf("a");
//字符串s在str中中最后一次出现的位置,如果没有检索到字符串s,该方法返回-1;
如果s是空字符串,则返回整个字符串的长度。

3. 查找指定索引处的字符

char content = str.charAt(3);
//返回索引为3的字符

4. 连接字符串

str3 = str1.concat(str2);
//使用concat方法
String hello = "Hello";
String world = "World";
String result = hello + ", " + world;
//直接使用加号

5. 获取子字符串

String substr1 = str.substring(1);
//截取从指定索引位置1开始到字符串结尾的子串
String substr2 = str.substring(1,4);
//从beginIndex开始,到endIndex结束(不包括endIndex),从1-4,但不包括4

6. 去除字符串首尾的空格去除字符串首尾的空格

String str1 = str.trim();

7. 去除字符串首尾的空格去除字符串首尾的空格

replace()方法

String str = "abcde";
String newStr = str.replace("abc", "fgh");
//把abc替换成fgh

replaceALL()方法:可以使用正则表达式来匹配需要替换的字符串,并将其替换为指定的字符串

String str = "abc123def";
String newStr = str.replaceAll("[0-9]+", ","); 
//移除所有数字,输出abc,def

8. 判断字符串的开始与结尾

  • str.startsWith(String prefix) :判断字符串是否以指定的后缀prefix开始
  • str.startsWith(String prefix, int beginidx):判断字符串中从beginidx开始的子串是否以指定的后缀prefix开始
  • str.endsWith(String suffix):判断此字符串是否以指定的后缀suffix结束
String str = "abcdef";
boolean res = str.startsWith("abc");//返回true
boolean res = str.StartsWith("def",3);//返回true
boolean res = str.endsWith("def");//返回true

9. 判断字符串是否相等

  • str1.equals(str2) 区分大小写
  • str1.equlasIgnoreCase(str2) 不区分大小写
String str1 = "abcdef";
String str2 = "abcdef";
String str3 = "ABCDEF";
boolean isEqualed = str1.equals(str2);//返回true
boolean isEqualed = str1.equals(str3);//返回false
boolean isEqualed = str1.equlasIgnoreCase(str3);//返回true

10. 判断字符串是否相等

compareTo():比较对应字符的大小(ASCII码),如果参数字符串等于此字符串,则返回值 0;如果此字符串小于字符串参数,则返回一个小于 0 的值;如果此字符串大于字符串参数,则返回一个大于 0 的值。

String str1 = "abc";
String str2 = "abcdef";
int res = str1.compareTo(str2);

11. 字符串大小写转换

  • toLowerCase():大写字母改写为小写字母
  • toUpperCase():小写字母改写为大写字母
String str1 = str1.toUpperCase();

12. 字符串分割

split()方法用于根据给定的正则表达式拆分字符串。

  • 使用.、$、|和*等特殊字符作为分隔符时,需要加上转义字符\
  • 如果要使用多个字符作为分隔符,可以使用|作为连接符
  • split()方法允许传递一个额外的参数来限制拆分的子字符串数量
String str = "abc def A.B.C"
String[] res = str.split(" ");//res = {"abc","def","A.B.C"}
String[] res = str.split(" ",2);//res = {"abc","def A.B.C"}
String[] res = str.split("\\.");//res = {"abc def A","B","C"}

String str = "abc and def or fgh"
String[] res = str.split("and|or");//res = {"abc "," def "," fgh"}

13. 字符串转换成字符数组

toCharArray()方法

String str = "abcdef";
char charArray[] = str.toCharArray();

StringBuffer&StringBuilder类

  • StringBuffer&StringBuilder类可以对字符串进行修改
  • StringBuilder相比StringBuffer速度较快,多数情况下使用StringBuilder
  • StringBuilder不能同步访问,不是线性安全的,若应用程序要求线程安全,必须使用StringBuffer

1. 创建字符串并添加字符

使用append()添加字符

StringBuffer str = new StringBuffer("");
str.append("abc");

2. 字符串长度

setLength(int newLength):设置字符序列的长度为newLength

str.length();
str.setLength(5);

3. 删除字符

delete(int start,int end):移除start-end子字符串的内容,包括end
deleteCharAt(int i):删除指定位置i的字符

str.delete(0,2);
str.deleteCharAt(str.length()-1);//删除最后一个字符

4. 插入字符

insert(int offset, int i):将 int 参数的字符串表示形式插入此序列中。

StringBuffer str = new StringBuffer("abcdef");
str1 = str.insert(3, 123); //str1: abc123def

5. 替换指定位置内容

  • replace(int start,int end,String
    str):用String类型的字符串str替换此字符串的子字符串start-end中的内容
  • setCharAt(int index,char ch):将给定索引处的字符设置为ch
StringBuffer str = new StringBuffer("abcdef");
String s = "123";
str.replace(1,1,s); //str: a123cdef

str.setCharAt(1, b) //str: ab23def

6. 翻转字符串

str.reverse();

7. 当前容量

str.capacity(); //获取当前容量值
str.ensureCapacity(int minimumCapacity)//确保容量小于指定的最小值

8. 转换成String类

str.toString();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值