【发布时间】:2014-04-01 00:29:13
【问题描述】:
我做了一个从字符串中删除一些标点符号的方法,但它只是返回参数中传递的单词,其中包含标点符号,任何人都可以找出问题所在吗?
public static String removePunctuation(String word) {
if (word.charAt(0) >= 32 && word.charAt(0) <= 46) {
if(word.length() == 1){
return "";
} else {
return removePunctuation(word.substring(1));
}
} else {
if(word.length() == 1){
return "" + word.charAt(0);
} else {
return word.charAt(0) + removePunctuation(word.substring(1));
}
}
}//end method
【问题讨论】:
-
请为这些事情使用调试器;它们旨在解决这类问题。
-
顺便说一句,如果您的基本情况是空字符串,而不是其中包含 1 个字符的字符串,您可能可以简化此操作。然后它就变成了
if (word.isEmpty()) return word; ...,你摆脱了讨厌的嵌套ifs。 -
请提供示例输入和输出,以便我们查看结果。
-
oops 案例结束,我的 ascii 代码值不包括我正在测试的所有标点符号
-
@user3189506,很高兴您发现了问题。由于花时间正确回答的两个人都确定了问题,请接受他们的一个答案。
标签: java recursion methods call