删除单词标点并在以后使用Java重新添加它的最佳方法?

时间:2014-03-30 15:15:25

标签: java string if-statement add

[Running Java 1.7.0_51 on MacOSX]

你好,

我正在编写一个程序,并且必须编写一个方法,它将获取一个单词的字符串参数,删除它的标点符号,缩写单词本身,然后一旦单词缩写,重新添加< / em>标点符号并返回单词。
请注意,标点符号仅包含: , ; . ! ?

字符串参数将是单个字 end 中包含标点符号

我已经知道如何使用重复的if语句/ else来执行此操作,但是如果可能的话,我希望看到一个更好,更有效的方法来执行此操作的示例。我确信有更好的方法,有经验的人可以给我一个例子。我会非常感激的。我还在学习,但我想探索有效的选择!

示例输入:
三江源!

示例输出:
泰!

我需要的指导就是实际删除和重新添加标点符号。将缩写部分留给我。因此,为了简化它,假设输入和输出是不可更改的。

1 个答案:

答案 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