[Running Java 1.7.0_51 on MacOSX]
你好,
我正在编写一个程序,并且必须编写一个方法,它将获取一个单词的字符串参数,删除它的标点符号,缩写单词本身,然后一旦单词缩写,重新添加< / em>标点符号并返回单词。
请注意,标点符号仅包含: ,
;
.
!
?
字符串参数将是单个字, end 中包含标点符号 。
我已经知道如何使用重复的if语句/ else来执行此操作,但是如果可能的话,我希望看到一个更好,更有效的方法来执行此操作的示例。我确信有更好的方法,有经验的人可以给我一个例子。我会非常感激的。我还在学习,但我想探索有效的选择!
示例输入:
三江源!
示例输出:
泰!
我需要的指导就是实际删除和重新添加标点符号。将缩写部分留给我。因此,为了简化它,假设输入和输出是不可更改的。
答案 0 :(得分:0)
考虑
标点符号总是在最后
您可以从inputWord
获取标点符号,如下所示:
String punctuation = inputWord.substring(inputWord.length() - 1);
并使用正则表达式进行检查(如果它是您应该具有的标点符号之一)</ p>
if (punctuation.matches("[\\!\\,\\?\\;\\.]"))
// your actions items here
通过这种方式,您可以避免多个if
语句。
<强>替代地强>
您可以维护一组需要检查的所有标点符号:
Set<String> punctuationSet = new HashSet<String>(
Arrays.asList(new String[]{"!", "?", ";", ",", "."}));
稍后使用
检查punctuation
中是否存在inputWord
中的punctuationSet
if (punctuationSet.contains(punctuation))
// your actions items here