Java字符串处理常用方法
char
char的默认值是空字符,判断是不是空字符用'\0'
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)
正则表达式
获取特定格式下的部分字符串,比如地址,邮箱
模糊匹配
…
注意
边界数据和特殊数据的处理
向好的方向走一步,就离坏的结果远一步