如何从包含字符串中查找数组列表的数量

Posted

技术标签:

【中文标题】如何从包含字符串中查找数组列表的数量【英文标题】:how to find number of array list from contains string 【发布时间】:2020-11-20 21:32:54 【问题描述】:

如何找到与包含字符串相同的数组列表的数量,我想让包含字符串“guess1”得到“answer1”,“guess2”得到“answer2”。如何找到与包含字符串相同的n个数组?

public class FindContainsText : MonoBehaviour

public Text text;
public InputField intext;

List<string> guess = new List<string>();
List<string> answer = new List<string>();

private int n;

void Start()

    guess.Add("test1");
    guess.Add("test2");

    answer.Add("answer1");
    answer.Add("answer2");


// Update is called once per frame
void Update()

    foreach (string x in guess)
    
        
        if (intext.text.ToLower().Contains(x.ToLower()))
        
            text.text = answer[n];
            return;
         
    
    text.text = "not found";


【问题讨论】:

【参考方案1】:

那么你应该使用Dictionary类型。

private Dictionary<string, string> guessAnswerDict = new Dictionary<string, string>();

private void Start()

    guessAnswerDict["test1"] = "answer1";
    guessAnswerDict["test2"] = "answer2";

您可以检查测试是否存在于字典中

guessAnswerDict.Contains("test1");

并得到答案值

var answer = guessAnswerDict["test1"];

当字典中没有key时会抛出异常,所以你必须用Contains检查它。

当然你可以将这两个与TryGetValue合并,比如

string answer;
guessAnswerDict.TryGetValue("test1", out answer);

// Totally identical!!
guessAnswerDict.TryGetValue("test1", out var answer);

如果字典中没有键,TryGetValue 将返回 false

顺便说一句,虽然 C# 的默认访问修饰符是 private,但最好明确地写成 private,这会增加代码的可读性 :)

【讨论】:

感谢您的回复,我如何将“test1”更改为变量,以便在输入与猜测相同的文本时检查“test2”、“test3”,...? 就是你说的! var test = userInput; var answer guessAnswerDict[userInput];

以上是关于如何从包含字符串中查找数组列表的数量的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Java中的给定字符串值从数组列表中查找最长前缀?

如果数组值包含字符串,则从 List<string> 中查找值 [重复]

从多个值列表中查找所有不冲突的值组合

使用字符串数组从书籍列表中查找书籍

在包含相等数量 a、b、c 的字符串中查找子串的数量

从搜索文档中查找最小片段的算法?