JAVA字符串中删除指定字符的11种方法
在JAVA编程中,经常需要处理字符串,其中常见的操作之一就是删除指定字符。下面将介绍11种常用的删除指定字符的方法。
方法1:使用replace方法替换指定字符
可以使用String
类的replace
方法,将要删除的字符替换成空字符串:
public static String deleteChar(String str, char c) {
return str.replace(c + "", "");
}
使用示例:
String str = "hello world";
char c = 'l';
String newStr = deleteChar(str, c);
System.out.println(newStr); // 输出:heo word
方法2:使用replaceAll方法替换指定字符
可以使用String
类的replaceAll
方法,将要删除的字符替换成空字符串:
public static String deleteChar2(String str, char c) {
return str.replaceAll(c + "", "");
}
使用示例:
String str = "hello world";
char c = 'l';
String newStr = deleteChar2(str, c);
System.out.println(newStr); // 输出:heo word
方法3:使用正则表达式替换指定字符
可以使用正则表达式替换要删除的字符:
public static String deleteChar3(String str, char c) {
String reg = "[" + c + "]";
return str.replaceAll(reg, "");
}
使用示例:
String str = "hello world";
char c = 'l';
String newStr = deleteChar3(str, c);
System.out.println(newStr); // 输出:heo word
方法4:使用StringBuffer删除指定字符
可以使用StringBuffer
类的deleteCharAt
方法,删除指定位置的字符:
public static String deleteChar4(String str, char c) {
StringBuffer sb = new StringBuffer(str);
for (int i = 0; i < sb.length(); i++) {
if (sb.charAt(i) == c) {
sb.deleteCharAt(i);
}
}
return sb.toString();
}
使用示例:
String str = "hello world";
char c = 'l';
String newStr = deleteChar4(str, c);
System.out.println(newStr); // 输出:heo word
方法5:使用StringBuilder删除指定字符
StringBuilder
类与StringBuffer
类类似,也可以使用deleteCharAt
方法删除指定位置的字符:
public static String deleteChar5(String str, char c) {
StringBuilder sb = new StringBuilder(str);
for (int i = 0; i < sb.length(); i++) {
if (sb.charAt(i) == c) {
sb.deleteCharAt(i);
}
}
return sb.toString();
}
使用示例:
String str = "hello world";
char c = 'l';
String newStr = deleteChar5(str, c);
System.out.println(newStr); // 输出:heo word
方法6:使用正则表达式截取指定字符之前的部分和之后的部分
可以使用正则表达式截取指定字符之前的部分和之后的部分,然后将它们拼接起来:
public static String deleteChar6(String str, char c) {
String[] strs = str.split(c + "");
StringBuilder sb = new StringBuilder();
for (String s : strs) {
sb.append(s);
}
return sb.toString();
}
使用示例:
String str = "hello world";
char c = 'l';
String newStr = deleteChar6(str, c);
System.out.println(newStr); // 输出:heo word
方法7:使用StringTokenizer分割字符串
可以使用StringTokenizer
类来分割字符串,然后将分割出来的部分拼接起来:
public static String deleteChar7(String str, char c) {
StringTokenizer st = new StringTokenizer(str, c + "");
StringBuilder sb = new StringBuilder();
while (st.hasMoreTokens()) {
sb.append(st.nextToken());
}
return sb.toString();
}
使用示例:
String str = "hello world";
char c = 'l';
String newStr = deleteChar7(str, c);
System.out.println(newStr); // 输出:heo word
方法8:使用indexOf和substring删除指定字符
可以使用indexOf
方法找到要删除的字符串的位置,然后使用substring
方法将其移除:
public static String deleteChar8(String str, char c) {
StringBuilder sb = new StringBuilder(str);
int index = -1;
while ((index = sb.indexOf(c + "")) != -1) {
sb = sb.deleteCharAt(index);
}
return sb.toString();
}
使用示例:
String str = "hello world";
char c = 'l';
String newStr = deleteChar8(str, c);
System.out.println(newStr); // 输出:heo word
方法9:使用split和join删除指定字符
可以使用split
方法将字符串分割成数组,然后使用join
方法将数组拼接成字符串:
public static String deleteChar9(String str, char c) {
String[] strs = str.split(c + "");
return String.join("", strs);
}
使用示例:
String str = "hello world";
char c = 'l';
String newStr = deleteChar9(str, c);
System.out.println(newStr); // 输出:heo word
方法10:使用正则表达式删除指定字符
可以使用正则表达式删除指定字符:
public static String deleteChar10(String str, char c) {
String reg = "[" + c + "]";
return str.replaceAll(reg, "");
}
使用示例:
String str = "hello world";
char c = 'l';
String newStr = deleteChar10(str, c);
System.out.println(newStr); // 输出:heo word
方法11:使用迭代器删除指定字符
可以使用Iterator
类来迭代删除指定字符:
public static String deleteChar11(String str, char c) {
StringBuilder sb = new StringBuilder(str);
Iterator<Character> iterator = sb.chars()
.mapToObj(e -> (char) e)
.iterator();
while (iterator.hasNext()) {
if (iterator.next() == c) {
iterator.remove();
}
}
return sb.toString();
}
使用示例:
String str = "hello world";
char c = 'l';
String newStr = deleteChar11(str, c);
System.out.println(newStr); // 输出:heo word
总结
以上是删除指定字符的11种方法,每种方法都有其适合场景和使用方式,需要注意的是,String
类是不可变类,所以每次操作都需要重新构造字符串。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA之String中删除指定字符方式(11种方法) - Python技术站