我是Kotlin的新手(我有Java背景),我似乎不知道如何检查字符串是否包含关键字列表中的匹配项。
我想做的是检查一个字符串是否包含一个关键字数组的匹配(请不区分大小写)。如果是,则打印出匹配的关键字和包含该关键字的字符串。(我将循环访问一个文件中的一串字符串)。
这里有一个MVE供初学者使用:
val keywords = arrayOf("foo", "bar", "spam")
fun search(content: String) {
var match = <return an array of the keywords that content contained>
if(match.size > 0) {
println("Found match(es): " + match + "\n" + content)
}
}
fun main(args: Array<String>) {
var str = "I found food in the barn"
search(str) //should print out that foo and bar were a match
}
作为一个开始(这忽略了'match'变量和getting-a-list-of-keywords-matched),我尝试使用下面的if语句,
if(Arrays.stream(keywords).parallel().anyMatch(content::contains))
但是它在“content”下面加了一条弯曲的线,给了我这个错误
不能使用提供的参数调用以下函数:公共运算符fun CharSequence.CONTAINS(Char:Char,IgnoreCase:Boolean=...):Kotlin.text中定义的布尔值公共运算符fun CharSequence.CONTAINS(Other:CharSequence,IgnoreCase:Boolean=...):Kotlin.text中定义的布尔值@inlineonly公共内联运算符fun CharSequence.CONTAINS(Regex:Regex):Kotlin.text中定义的布尔值
您可以使用筛选
函数只保留内容
中包含的那些关键字:
val match = keywords.filter { it in content }
这里的match
是一个列表
。如果希望在结果中获得数组,可以添加.ToTypedArray()
调用。
表达式it in content
中的in
运算符与content.contains(it)
相同。
val match = keywords.filter { content.contains(it, ignoreCase = true) }
问题内容: 如何测试字符串以查看其是否包含数组中的任何字符串? 而不是使用 问题答案: 编辑:这是使用Java 8流API的更新。如此清洁。仍然可以与正则表达式结合使用。 另外,如果我们将输入类型更改为List而不是数组,则可以使用。 如果希望返回匹配的字符串,也可以使用。 原始的过时的答案: 这是(VERY BASIC)静态方法。请注意,在比较字符串上区分大小写。一个原始的,使其不区分大小写的办
问题内容: 我想检查我的字符串是否包含+字符。我尝试了以下代码 但是它没有给出预期的结果。 问题答案: 您需要此: 类的方法不使用正则表达式作为参数,而是使用普通文本。 编辑: 输出:
我能够通过使用下面这个问题的注释提供的代码来解决这个问题。所有其他帖子都是有效的! 我使用的有用的东西来自第一个评论。虽然提供的所有示例代码似乎也是有效的!
问题内容: 我正在尝试检测字符串是否包含至少一个存储在数组中的URL。 这是我的数组: 该字符串由用户输入并通过PHP提交。在确认页面上,我想检查输入的URL是否在数组中。 我尝试了以下方法: 无论输入什么,返回值始终为“找不到匹配项”。 这是正确的做事方式吗? 问题答案: 尝试这个。 如果要检查不区分大小写,请使用stristr()或stripos()。
问题内容: 我需要检查字符串是否包含数字。任何数字。字符串是否为数字,而不是数字,但包含一个数字。 例子: ‘test’=没有数字。 ‘test2’=包含数字。 问题答案: 使用正则表达式: 不使用正则表达式:
问题内容: 非常简单。在javascript中,我需要检查字符串是否包含数组中包含的任何子字符串。 问题答案: 没有内置功能可以为您做到这一点,您必须为其编写一个函数。 如果您 知道 字符串不包含任何正则表达式中特殊的字符,那么您可以作弊一点,如下所示: …这会创建一个正则表达式,该正则表达式是您要查找的子字符串(例如)的一系列 替换 ,并测试是否有匹配的子字符串,但是如果任何子字符串包含任何特殊