2017-03-23 6 views
0

ファイルネーミングで/、*、または?を許可しないため、これらのホテル名をファイル名として挿入する場合、valieではない文字を含むいくつかのホテルがあります。このエラーの意味を知りたい不要な文字を置き換える方法

​​

私はホテル名がこれらの文字が含まれている場合、その後に置き換えるようであればelse文を使用しようとしています - 。しかし、私は受け取っているとエラーがついていると述べていますか?私はちょうど私がこれらの文字の置換を正しく使用しているかどうかを確認したい。

def hotelNameTrim = hotelName.toString() 

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

答えて

3

replaceAllは検索パターンとして正規表現を受け入れます。 *と?正規表現の特殊文字であり、バックスラッシュでエスケープする必要があります。それ自体は、Java文字列にエスケープする必要があります:)

これを試してみてください:

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

ダッシュですべてのあなたの文字を置き換えること。

関連する問題