2014-06-20 102 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

获取字符串的最后一个字符并使用正则表达式进行验证。

相关问题