如何替换不需要的字符

How to replace unwanted characters

我有一些酒店包含一些字符,当我想将这些酒店名称作为文件名插入时,这些字符无效,因为文件命名不允许 /、* 或 ?想知道这个错误是什么意思。

text?text
text?text
text**text**
text*text (text)
text *text*
text?

我正在尝试使用 if else 语句,以便如果酒店名称包含这些字符中的任何一个,则将它们替换为 -。但是我收到了一个悬空的错误消息?。我只想检查我是否对这些字符正确使用了替换。

def hotelNameTrim = hotelName.toString()

if (hotelNameTrim.contains("/"))
{
    hotelNameTrim.replaceAll("/", "-")
}
else if (hotelNameTrim.contains("*"))
{
    hotelNameTrim.replaceAll("*", "-")
}
else if (hotelNameTrim.contains("?"))
{
    hotelNameTrim.replaceAll("?", "-")
}

replaceAll 接受正则表达式作为搜索模式。 * 和 ?是正则表达式中的特殊字符,需要用反斜杠转义。它本身需要在 Java 字符串中转义:)

试试这个:

hotelNameTrim.replaceAll("[\*\?/]","-")

这会将您所有的字符替换为破折号。