当前位置: 首页 > 知识库问答 >
问题:

如何检查字典中是否包含字符串中的字母

霍建章
2023-03-14

我想创建一种算法,把字符串中的字母变成int,假设字符串是ABCD,输出是1234,这将确保相同的消息每次都是相同的,我的想法是创建一个字典,以char作为键,int作为值,然后它会循环通过字符串,在这个循环中,它会循环通过字典中的所有内容,类似这样

for(int i = 0; i < SeedS.Length; i++) {

    for(int j = 0; j < AlphabetDictionary.Count; j++) {

        //Do something

    }

}

然后我的想法是检查种子中的内容(索引为i)是否等于字典中的关键字(索引为j),然后将该位置的值赋给输出,我试着在网上搜索如何做到这一点,但我没有找到任何可以帮助,(我可以使用数组或列表,但我认为这只是懒惰和不太好,如果我可以使用字典)我使用了1-2次字典,我不知道如何做这样的事情,我想到了所有其他的,但我停在这一点,因为我不知道现在该做什么。我想要任何帮助提款机,因为我在过去的一个星期里一直在研究这个“算法”,我猜

PS:我也试着看Unity YT教程和阅读Unity文档,但我什么也没有发现。

共有2个答案

简培
2023-03-14

您可以使用dictionary .tryGetValue 并使用两个字典来来回操作

private Dictionary<int, char> indexToChar;
private Dictionary<char, int> charToIndex;

public string GetString(IReadonlyList<int> indices)
{
    var sb = new StringBuilder();
    foreach(var id = indices)
    {
        if(indexToChar.TryGetValue(id, out var c)
        {
            sb.Append(c);
        }
    }

    return sb.ToString();
}

public IReadonlyList<int> GetIndices(string input)
{
    var ids = new List<int>();

    for(var i = 0; i < input.Length; i++)
    {
        if(charToIndex.TryGetValue(input[i], out var id)
        {
            ids.Add(id);
        }
    }

    return ids;
}
堵宏毅
2023-03-14

您可以使用以下内容:

// Create your dictionary here.
var dictionary = new Dictionary<char, int>();

// The string that will be converted.
string str = "Hello";

foreach (char character in str)
{
    if (dictionary.ContainsKey(character))
    {
        int value = dictionary[character];

        // Use your value here.
    }
}

词典提供了通过键在大约O(1)时间内找到值的函数。对它们进行迭代会花费更长的时间,因此会破坏使用字典的目的。

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

  • 所以我一辈子也想不出来。我正在尝试编写一个程序,提示用户输入电话号码。这将作为字符串输入,并在稍后的程序中转换为整数数组。然而,我现在遇到的情况是验证用户输入的字符串是否仅限于!!!包含2-9之间的数字。我已经尝试了。Contains方法和。Match方法,但是使用这些方法总是提供错误的结果。如果有人能提供一些关于如何解决这个问题,我将非常感谢。提前感谢。 以下是我目前掌握的信息:

  • 问题内容: 我需要检查字符串是否包含数字。任何数字。字符串是否为数字,而不是数字,但包含一个数字。 例子: ‘test’=没有数字。 ‘test2’=包含数字。 问题答案: 使用正则表达式: 不使用正则表达式:

  • 问题内容: 我需要检查一个字符串是否包含汉字。搜索之后,我发现我必须在这种模式下查看正则表达式,但是我无法使正则表达式正常工作。 任何人都经历过这种情况?正则表达式正确吗? 问题答案: 作为讨论在这里,在Java 7(即正则表达式编译器符合要求RL1.2属性从UTS#18 Unicode的正则表达式 ),你可以使用下面的正则表达式匹配中国(当然,CJK)字符: 可以简单地理解为

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

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