2014-06-20 103 views
-3

正如標題所說,如何在JAVA中做到這一點?如何檢測字符串是否以標點符號結尾?

例如,

String example="Hello?"; 

該字符串包含?末,我需要用JAVA檢測到它。

編輯我需要檢測所有標點符號,不僅僅是?

+0

這聽起來像你需要把你的問題分成兩個階段。首先,你如何檢測一個特定的標點符號 - 例如問號?下面的答案可以指導你在那裏。其次,你如何以程序化的方式多次應用這種方法來處理不同的商標(不必重複自己太多)?您可能想要查找控制流結構(如循環)以幫助您。 – CosmicComputer

+0

正如我在問題中所說的,如果最後一個字符是標點符號,我需要返回true,否則返回false。我不是你的答案可以使用的東西。 –

+1

他的回答可以使用。 將字符串的末尾與標點符號的矢量進行比較。如果它是真的,然後返回它。 他建議您創建一個方法,以便您可以重用它並使用控制流來遍歷該向量。 –

回答

2

您可以使用正則表達式和其預定\p{Punct}類,它代表的
!"#$%&'()*+,-./:;<=>[email protected][]^_`{|}~的人物之一。只需使用

if (yourString.matches(".*\\p{Punct}"); 

由於matches檢查整個字符串可以用正則表達式匹配,你需要讓它標點符號之前也匹配字符。爲此,您可以使用.*,其中.表示任何字符(除了新行),並且*表示零次或多次出現。

如果您不希望包括來自\p{Punct}可以使用例如[.?!]只匹配.?!定義自己的character class所有字符。

-2

使用endsWith(char)

example.endsWith('?') 
+0

不僅適用於「?」。如果它發生,我需要檢測所有標點符號。 –

+1

它甚至不會得到所有標點符號 – NimChimpsky

+0

是您可以使用的一個示例,而不是完整的解決方案。 –

1

獲取字符串的最後一個字符並使用正則表達式進行驗證。

相關問題