【发布时间】:2016-05-05 18:02:36
【问题描述】:
我需要计算一个字符串中大写单词的总数,但如果不涉及复杂的 if 语句和检查,我就是不知道该怎么做。
我已经尝试并写下了这样的内容:
private int uppercaseWordsCount(String input){
count = 0;
String[] ss = input.split("\\s");
for (String s: ss){
//???
}
}
return count;
}
而且我仍然不知道有什么好的条件可以满足我的需要。问题是我必须处理整个单词(出于该方法的目的,感叹号等特殊字符被视为大写字符)而不是单个字符,因为我正在编写的系统的其余部分已经这样做了。
【问题讨论】:
-
编写多个检查或复杂的 if 语句有什么问题?
-
分解问题。
???部分有什么内容?可能是这样的,“如果这是一个大写单词,则递增计数器。”所以写下那个条件,替换为“这是一个大写的单词吗?”使用返回布尔值的方法。现在您需要实现该方法,但这是一个更容易解决的问题。 -
@Brian 只要有更简单的解决方案,我宁愿坚持下去,奥卡姆的胜利法则!无论如何,我已经设法找到了一个满意的答案,感谢您的关注!
-
这可能听起来很刺耳,如果确实如此,我深表歉意,这不是本意……但如果这个问题是您需要帮助的问题,那么您实际上可能会从做事的一些练习中受益“硬”的方式(即,不依赖于编写正则表达式解析器的人为您解决了问题等)。
-
@yshavit 是的,我并不是说我不需要练习,这样说我会很愚蠢,但我被困在这个问题上(一个简单的问题,必须承认)几个小时,因为我上一次用 Java 写东西是在两年前,我几乎什么都不记得了。我需要重新获得程序员的心态,堆栈溢出可以帮助我达到那个目标,这就是为什么我首先发布了这样一个问题:)