gpt4 book ai didi

java - 从字符串中删除大量字符的更简单方法?

转载 作者:行者123 更新时间:2023-11-29 19:56:56 26 4
gpt4 key购买 nike

我想以最有效的方式从字符串中删除一组字符。

现在我只是复制并粘贴一行代码,但必须有更有效的方法!

我的代码:

ProductName = ProductName.replace("!", "");
ProductName = ProductName.replace("#", "");
ProductName = ProductName.replace("$", "");
ProductName = ProductName.replace("%", "");
ProductName = ProductName.replace("^", "");
ProductName = ProductName.replace("&", "");
ProductName = ProductName.replace("*", "");
ProductName = ProductName.replace("(", "");
ProductName = ProductName.replace(")", "");
ProductName = ProductName.replace("?", "");
ProductName = ProductName.replace("[", "");
ProductName = ProductName.replace("{", "");
ProductName = ProductName.replace("}", "");
ProductName = ProductName.replace("]", "");
ProductName = ProductName.replace("/", "");
ProductName = ProductName.replace(".", "");
ProductName = ProductName.replace("<", "");
ProductName = ProductName.replace(">", "");
ProductName = ProductName.replace(",", "");

最佳答案

不要把事情复杂化。现在尝试着重于更容易维护而不是效率的方式。

一种方法是使用正则表达式及其 character class - 例如像 [abc] 这样的正则表达式表示一个字符,它是 a bc

你只需要在这里小心,因为有些字符即使在字符类中也有特殊含义(比如 - 可以用来创建字符范围,比如 a-z,或者] 简单地表示字符类的结束)。
为了避免此类特殊字符出现任何问题,我们可以创建一个区域,将所有字符都视为文字(没有特殊含义的字符)。要创建这样的区域,我们可以使用 \Q...\E(有关它的更多信息,请阅读 http://www.regular-expressions.info/characters.html#special 部分的最后一段)。

所以你的代码看起来像

String removeThese = "!#$%^&*()?[{}]/.<>,";
ProductName = ProductName.replaceAll("[\\Q"+removeThese +"\\E]", "");

此外,根据 Java 命名约定,变量应以小写字母开头,因此您的 ProductName 应为 productName

关于java - 从字符串中删除大量字符的更简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36668260/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com