[Running Java 1.7.0_51 on MacOSX]
嗨,你好
我目前正在编写一个程序,并且必须编写一个方法,该方法将获取单词的字符串参数,删除其标点符号,缩写单词本身,然后在单词缩写后,重新添加标点符号并返回单词。
请注意,标点符号仅包括: ,
;
.
!
?
字符串参数将是单个单词,标点符号仅包含在末尾。
我已经知道如何使用重复的if语句/else if来做到这一点,但是如果可能的话,我希望看到一个更好,更有效的方法的例子。我相信有更好的方法,有经验的人可以给我一个例子。我将不胜感激。我还在学习,但我想探索有效的选择!
示例输入:
谢谢!
示例输出:
Ty!
我需要的指导只是实际删除和重新添加标点符号。把缩写部分留给我。因此,为了简化它,假设输入和输出是不可更改的。
考虑
标点符号始终位于末尾
您可以从inputWord
中获取标点符号,如下所示:
String punctuation = inputWord.substring(inputWord.length() - 1);
并使用正则表达式检查它是否是您应该拥有的标点符号之一
if (punctuation.matches("[\!\,\?\;\.]"))
// your actions items here
这样,您可以避免多个if
语句。
或者
您可以保留一组需要检查的所有标点符号:
Set<String> punctuationSet = new HashSet<String>(
Arrays.asList(new String[]{"!", "?", ";", ",", "."}));
然后检查inputWord
中的punctuation
是否存在于punctuationSet
if (punctuationSet.contains(punctuation))
// your actions items here