【发布时间】:2021-04-28 05:28:45
【问题描述】:
我必须计算字符串中的单词数(你好,怎么样?你是 Akanksha-Mishra 吗?),所以答案是 4。因为不考虑包含特殊字符的单词,并且认为由连字符连接的单词成为一个词。那么,我该怎么做呢。
【问题讨论】:
我必须计算字符串中的单词数(你好,怎么样?你是 Akanksha-Mishra 吗?),所以答案是 4。因为不考虑包含特殊字符的单词,并且认为由连字符连接的单词成为一个词。那么,我该怎么做呢。
【问题讨论】:
如果每个特殊字符都可能出现在单词的末尾并且会被计数(例如您的示例中的“如何?”) - 我建议如下:
public static void main(String[] args) {
int counter = 0;
Pattern pattern = Pattern.compile("[a-zA-Z]+[^A-Za-z]*");
//String string = "blah blah-blah bla*h";
String string = "hello how? are y*ou Akanksha-Mishra?";
string = string.replace("-","");
String[] words = string.split(" ");
for (String word: words) {
Matcher matcher = pattern.matcher(word);
if (matcher.matches()) {
counter++;
}
}
System.out.println(counter);
}
}
如果您需要额外的解释,请告诉我。
【讨论】:
如果您想用 Java 编写代码,可以这样做:
public class CountSpecCharacter
{
public static void main(String[] args) {
String string = "hello how? are y*ou Akanksha-Mishra?";
int count = 0, spec = 0;
for(int i = 0; i < string.length(); i++) {
if ((string.charAt(i)>64 && string.charAt(i)<=122) || string.charAt(i) == 32)
{
count++;
}
}
spec = string.length() - count;
System.out.println("Number of Special Characters: " + spec);
}
}
在这里,我实现了一个 for 循环,用于计算字符串中的字符数,包括空格。 然后将该数字减去字符串的总长度,以找出特殊字符的数量。
【讨论】:
您可以遍历每个字符并检查它们的顺序,例如 A 有 65,Z 有 92。您可以检查字符的顺序是否在一个范围内,如果他们知道它们是简单的字母,其他特殊字符.
【讨论】: