我已經開始在我的java程序中使用.match(Regex)
方法,但現在我只是使用一個字符串(String regexString = new String("[^a-zA-Z0-9][^a-zA-Z0-9]*");
這是迄今爲止,作爲一個例子)。我知道然而我可以使用一個實際的正則表達式(然後編譯它(?)一些如何)。用字符串表示正則表達式還是不用字符串表達正則表達式?
在java中使用Regex作爲類而不僅僅是一個字符串是否有優勢?我習慣於打腳本,而正則表達式只是最簡單的意義上的'串',並且沒有能力/需要一個單獨的類,所以我很努力地看到這裏有一個。
永遠不要寫'new String(「...」);'。只需使用'「...」'而不是:'String regexString =「。*」;'。顯式創建一個新的'String'對象是沒有必要的和低效的。 – Jesper
無論如何我每次都會創建一個對象?如果我有幾個單獨的字符串呢? – Pureferret
是的,如果你只是使用一個文字,例如'「。*」',那麼就會創建一個String對象。但是如果你使用'new String(「。*」)',則會創建第二個String對象,它複製文字字符串的內容,這是不必要的。字符串在Java中是不可變的。 Java有一個字符串池機制,所以如果多次使用相同的字符串,將只有一個共享的String對象。 – Jesper