作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个方法,返回字符串中没有在字符串数组中出现的单词的单词数。我想仅使用 java.lang 包中的任何内容来实现此逻辑。
public int count(String a, String[] b) {
}
例如
count(" hey are you there ", new String[]{ "are", "i", "am"})
将返回 3,因为字符串中有单词“are”。
首先,我想我必须使用 string.split 函数将字符串转换为字符串数组。有什么想法吗?
最佳答案
您可以简单地执行以下操作:
public int count(String a, String[] b) {
int count = b.length;
for(String s : b) if(a.contains(s)) count--;
return count;
}
编辑:我可能很困惑,我以为你想要 b
中的字符串数而不是 a
中的字符串(在你的示例中它仍然是 3)。在这种情况下,从您的示例来看,除非您使用 regex
,否则 split
似乎不方便,因此您可以使用 Scanner 创建一个
:String[]
public int count(String a, String[] b) {
ArrayList<String> words = new ArrayList<String>();
Scanner scan = new Scanner(a);
while(scan.hasNext()) words.add(scan.next());
int count = words.size();
for(String s : words) if(/*b contains s*/) count--;
return count;
}
关于java - 字符串中不在字符串数组中的单词数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35966989/
我是一名优秀的程序员,十分优秀!