当前位置: 首页 > 面试题库 >

前往:如何检查一个字符串是否包含多个子字符串?

孙永思
2023-03-14
问题内容

strings.Contains(str_to_check, substr)仅使用一个参数作为要检查的子字符串,如何检查多个子字符串而不strings.Contains()重复使用?

例如。 strings.Contains(str_to_check, substr1, substr2)


问题答案:

您可以使用strings.Contains()可用于多个子字符串的函数编写自己的实用程序函数。

以下是在完全/部分匹配以及匹配总数的情况下返回布尔值(true/ false)的示例:

package main

import (
    "fmt"
    "strings"
)

func checkSubstrings(str string, subs ...string) (bool, int) {

    matches := 0
    isCompleteMatch := true

    fmt.Printf("String: \"%s\", Substrings: %s\n", str, subs)

    for _, sub := range subs {
        if strings.Contains(str, sub) {
            matches += 1
        } else {
            isCompleteMatch = false
        }
    }

    return isCompleteMatch, matches
}

func main() {
    isCompleteMatch1, matches1 := checkSubstrings("Hello abc, xyz, abc", "abc", "xyz")
    fmt.Printf("Test 1: { isCompleteMatch: %t, Matches: %d }\n", isCompleteMatch1, matches1)

    fmt.Println()

    isCompleteMatch2, matches2 := checkSubstrings("Hello abc, abc", "abc", "xyz")
    fmt.Printf("Test 2: { isCompleteMatch: %t, Matches: %d }\n", isCompleteMatch2, matches2)
}

输出:

String: "Hello abc, xyz, abc", Substrings: [abc xyz]
Test 1: { isCompleteMatch: true, Matches: 2 }

String: "Hello abc, abc", Substrings: [abc xyz]
Test 2: { isCompleteMatch: false, Matches: 1 }

这是实时示例:https :
//play.golang.org/p/Xka0KfBrRD



 类似资料:
  • 问题内容: 我想检查我的字符串是否包含+字符。我尝试了以下代码 但是它没有给出预期的结果。 问题答案: 您需要此: 类的方法不使用正则表达式作为参数,而是使用普通文本。 编辑: 输出:

  • 问题内容: 在代码中检查的子字符串是: 但是我该如何在Swift中做到这一点? 问题答案: 您可以使用Swift进行完全相同的调用: Swift 4和Swift 5 在Swift 4中,String是值的集合,在Swift 2和3中并不是这样,因此您可以使用以下更简洁的代码1: 迅捷3.0+ 较早的斯威夫特 我希望这是一个有用的解决方案,因为包括我在内的某些人通过致电遇到了一些奇怪的问题。1个 P

  • 在中,检查中的子字符串的代码是: 但我如何在Swift中做到这一点呢?

  • 问题内容: 我有一个购物车,在下拉菜单中显示产品选项,如果它们选择“是”,我想使页面上的其他一些字段可见。 问题是购物车的文本中还包含价格修饰符,每个产品的价格修饰符可能不同。以下代码有效: 但是我宁愿使用这样的东西,它不起作用: 我只想在所选选项包含单词“是”的情况下执行操作,并且会忽略价格修饰符。 问题答案: 像这样: …或者您可以使用波浪号运算符: 之所以有效,是因为如果根本找不到该字符串,

  • 问题内容: 通常我希望有一种方法,但是似乎没有。 有什么合理的方法来检查? 问题答案: ECMAScript 6引入了: 但是不支持。在ECMAScript 5或更旧的环境中,使用,当找不到子字符串时,它将返回-1:

  • 通常我希望有方法,但似乎没有。 对此有什么合理的检查方法?