如何在Java中从字符串中删除一个字符

介绍

在本文中,您将学习几种不同的方法来从Java中的String对象中删除字符。虽然String类没有remove()方法,但您可以使用replace()方法和substring()方法的变体来从字符串中删除字符。

注意:String对象是不可变的,这意味着它们在创建后无法更改。本文中描述的所有String类方法都会返回一个新的String对象,并且不会更改原始对象。您使用的字符串类型取决于程序的要求。了解更多关于Java中其他类型的字符串类以及为什么字符串在Java中是不可变的

String类具有以下方法,您可以使用这些方法来替换或删除字符:

  • replace(char oldChar, char newChar):返回一个新的String对象,该对象将给定字符串中所有oldChar的出现替换为newChar。您还可以使用replace()方法,格式为replace(CharSequence target, CharSequence replacement),以返回一个新的String对象,该对象将给定字符串中的子字符串替换。
  • replaceFirst(String regex, String replacement):返回一个新的String对象,它用替换字符串中与给定正则表达式匹配的第一个子字符串。
  • replaceAll(String regex, String replacement):返回一个新的String对象,它用替换字符串中与给定正则表达式匹配的每个子字符串。
  • substring(int start, int end):返回一个新的String对象,它包含当前序列中当前包含的字符的子序列。子字符串从指定的开始处开始,一直延伸到索引为end减1的字符。

请注意,replaceAll()replaceFirst()方法的第一个参数是一个正则表达式。您可以使用正则表达式从字符串中移除模式。

注意:在使用replace()方法时,您需要使用双引号来表示字面字符串值。如果使用单引号,则JRE会认为您正在指定一个字符常量,并且在编译程序时会出现错误。

在Java中从字符串中删除字符

您可以使用Java中的replace()方法将字符串中的所有实例替换为一个空字符串来删除特定字符。以下是一个示例代码,它从给定字符串中删除所有小写字母“a”的出现:

String str = "abc ABC 123 abc";
String strNew = str.replace("a", "");
Output
bc ABC 123 bc

从Java中的字符串中删除空格

您可以使用replace()方法将字符串中的空格替换为一个空字符串来删除Java中的字符串中的空格。以下是一个示例代码,它从给定字符串中删除所有空格:

String str = "abc ABC 123 abc";
String strNew = str.replace(" ", "");
Output
abcABC123abc

从Java中的字符串中删除子字符串

您可以使用replaceFirst()方法仅从Java中的字符串中删除字符或子字符串的第一个出现。以下是一个示例代码,它从给定字符串中删除第一个出现的“ab”:

String str = "abc ABC 123 abc";
String strNew = str.replaceFirst("ab", "");
Output
c ABC 123 abc

在Java中删除字符串中的所有小写字母

您可以使用正则表达式来删除Java中字符串中与给定模式匹配的字符,方法是使用replace.All()方法将字符替换为一个空字符串。以下示例代码从给定字符串中删除所有小写字母:

String str = "abc ABC 123 abc";
String strNew = str.replaceAll("([a-z])", "");
Output
ABC 123

在Java中删除字符串的最后一个字符

没有特定的方法来替换或删除字符串的最后一个字符,但您可以使用String substring()方法来截断字符串。以下示例代码从给定字符串中删除最后一个字符:

String str = "abc ABC 123 abc";
String strNew = str.substring(0, str.length()-1);
Output
abc ABC 123 ab

试一下

以下示例文件定义了一个类,该类包含本文提供的所有方法示例,并在调用给定字符串上的每个方法后打印结果。您可以使用此示例代码在不同的字符串上尝试使用不同的匹配模式和替换值。

如果您已安装了Java,您可以创建一个名为JavaStringRemove.java的新文件,并将以下代码添加到文件中:

JavaStringRemove.java

public class JavaStringRemove {

	public static void main(String[] args) {
    	String str = "abc ABC 123 abc";

		// 从Java中的字符串中删除一个字符
		System.out.println("String after removing all the 'a's = "+str.replace("a", ""));

		// 从Java中的字符串中删除空格
		System.out.println("String after removing all the spaces = "+str.replace(" ", ""));

		// 从Java中的字符串中删除子字符串	
		System.out.println("String after removing the first 'ab' substring = "+str.replaceFirst("ab", ""));

		// 从Java中的字符串中删除所有小写字母
		System.out.println("String after removing all the lowercase letters = "+str.replaceAll("([a-z])", ""));

		// 从Java中的字符串中删除最后一个字符
		System.out.println("String after removing the last character = "+str.substring(0, str.length()-1));
	}

}

编译并运行程序:

  1. javac JavaStringRemove.java
  2. java JavaStringRemove

您将得到以下输出:

Output
String after removing all the 'a's = bc ABC 123 bc String after removing all the spaces = abcABC123abc String after removing the first 'ab' substring = c ABC 123 abc String after removing all the lowercase letters = ABC 123 String after removing the last character = abc ABC 123 ab

JavaStringRemove示例类中的每个方法都操作给定的字符串。输出显示,每个方法中指定的字符已从字符串中删除。

结论

在本文中,您学习了使用String类中的方法来删除Java字符串中的字符的各种方法,包括replace()replaceAll()replaceFirst()substring()。继续学习更多Java教程

Source:
https://www.digitalocean.com/community/tutorials/java-remove-character-string