Java字符串处理常用方法

char

char的默认值是空字符,判断是不是空字符用''
ASCII码一览表

十进制 字符
0 NULL
48 0
57 9
65 A
90 Z
97 a
122 z
char a = 65;
System.out.print(a);//A
System.out.println(a+1);//66

System.out.println((char)('a'+25));//z

String ——不变字符串

要想改变字符串需将改变后的字符串再赋值给原来的字符串

String s = "abcabcabc";
System.out.println(s.toUpperCase());//ABCABCABC
System.out.println(s);//abcabcabc

全部转换为大写或小写

s.toUpperCase();
s.toLowerCase();

只能将特定字符串替换为其他字符串

String s = "abcabcabc";
s = s.replaceFirst("abc","a-c");//a-cabcabc
s = s.replaceAll("abc","a-c");//a-ca-ca-c

字符串转换为对应的char数组

String s1 = "qazqaz";
char[] c1 = s1.toCharArray();

StringBuilder——可变字符串

常用于OJ竞赛(速度比StringBuffer快,但是线程不安全)

初始化以及赋值

StringBuilder sb = new StringBuilder();
//一个空的StringBuilder
StringBuilder sb = new StringBuilder("qwer123");
//一个值为qwer123的字符串
String s = "0123";
StringBuilder sb = new StringBuilder(s);
System.out.println(sb);//0123

查找

找到指定位置的字符

sb.charAt(int index);

找到特定字符的位置
注意是否有越界或者找不到位置的可能

StringBuilder sb = new StringBuilder("0qwer1230");
sb.indexOf("w");//2
sb.indexOf("a");//-1
sb.lastIndexOf("0");//8

插入

指定位置前面插入字符串

StringBuilder sb = new StringBuilder("0123456789");
sb.insert(5, "insert");//从0开始计数,在5前面插入
System.out.println(sb);//01234insert56789

替换

替换字符好像没有现成的方法。所以可以先删除,后插入

替换某个字符

StringBuilder sb = new StringBuilder("012345");
int index = 3;
sb.deleteCharAt(index);
sb.insert(index, "C");

替换某个位置的字符

StringBuilder sb = new StringBuilder("0123450");
String letter = "3";
int index1 = sb.indexOf(letter);
int index2 = sb.lastIndexOf("0");//6
System.out.println(index2);
sb.deleteCharAt(index1);
sb.insert(index1, "C");
System.out.println(sb);//012C450

替换某段位置的字符串

sb.replace(index1,index2,"string");
//替换sb中位置为[index1,index2)的字符串为string

追加

追加字符串(字符)

StringBuilder sb = new StringBuilder("qazwsx123");
sb.append("ABC");//qazwsx123ABC

也可配合数组使用

StringBuilder sb = new StringBuilder("qazwsx123");
char[] array = {'A','B','C'};
for (int i = 0; i < 2; i++) {
	sb.append(array[i]);
}
System.out.println(sb);//qazwsx123AB

删除

删除某个位置的字符

sb.deleteCharAt(index);

删除字符串

sb.delete(index1,index2);
//删除[index1,index2)

正则表达式

获取特定格式下的部分字符串,比如地址,邮箱
模糊匹配

注意

边界数据和特殊数据的处理

向好的方向走一步,就离坏的结果远一步
原文地址:https://www.cnblogs.com/PersistLu/p/12700326.html