如何在 Java 中删除字符串中的标点符号

原文:https://www.studytonight.com/java-examples/how-to-remove-punctuation-from-string-in-java

在本教程中,我们将学习如何在 Java 中删除字符串中的标点符号。我们括在方括号中的所有字符都被归类为标点符号[ ! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ ] ^ _ { | } ~` ]。这些基本上是任何语言语法的一部分。Java 提供了几种从字符串中删除这些内容的方法。

enlightened考虑到str 是字符串,使用正则表达式去除标点符号非常简单,下面是单行代码,方便快速直觉。

str.replaceAll("\\p{Punct}", "");

现在,让我们正式看一下从字符串中删除标点符号的完整程序。

使用 replaceAll()从字符串中删除标点符号的示例

在下面的代码中,我们使用正则表达式调用replaceAll()方法,该方法将找到字符串中存在的所有标点符号字符,并将其替换为空字符串(""),看起来标点符号被删除了。

更多信息,可以参考本官方文档:模式(Java SE 14&JDK 14)(oracle.com)

public class StudyTonight 
{ 
    public static void main(String[] args) 
    { 
        String str = "?This String $% Contains$$ punctuation !!"; 
        str = str.replaceAll("\\p{Punct}",""); 
        System.out.println(str); 
    } 
}

该字符串包含标点符号

正则表达式不是一个非常直观的东西,所以我们将看一些非常基本的东西。

使用 isLetterOrDigit()方法从字符串中删除标点符号的示例

在下面的代码中,我们首先使用toCharArray()将一个字符串转换成一个字符数组,然后使用isLetterOrDigit()确定当前字符是数字还是字母,如果是,我们将把它附加到结果字符串中,它将形成一个新的字符串。

public class StudyTonight 
{ 
    public static void main(String[] args) 
    { 
        String str = "?This String $% Contains$$ punctuation !!"; 
        String res = "";
        for (Character c : str.toCharArray()) 
        {
            if(Character.isLetterOrDigit(c))
                res += c;
        }
        System.out.println(res); 
    } 
}

道德字串包含溢漏情况

结论:

在本文中,我们学习了从给定的字符串中删除标点符号。这是一个简单的任务,结合了像replaceAll()isLetterOrDigit().这样的正则表达式和 Java 方法