现有如下字符串“Hello,bob.Please send me an SOS by radar!”,请编程计算字符串中出现回文单词的个数。(提示 :用String的spⅠit方法,分隔符为“ |,|!|\\.”即用空格、逗号、惊叹号、句号做单词分隔符)
时间: 2024-05-11 18:15:43 浏览: 90
Java代码如下:
```
public class PalindromeCount {
public static void main(String[] args) {
String str = "Hello, bob. Please send me an SOS by radar!";
String[] words = str.split("[ |,|!|\\.]"); // 用正则表达式分割字符串
int count = 0;
for (String word : words) {
if (isPalindrome(word)) {
count++;
}
}
System.out.println("Palindrome count: " + count);
}
public static boolean isPalindrome(String str) {
int left = 0, right = str.length() - 1;
while (left < right) {
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
}
```
解析:首先用String的split方法将字符串按照空格、逗号、感叹号、句号分隔成单词数组,然后遍历单词数组,对每个单词判断是否为回文单词,如果是则计数器加1。判断回文单词的方法是从单词的两端开始向中间扫描,如果一直相等则是回文单词。最后输出计数器的值即可。
阅读全文