我想创建一种算法,把字符串中的字母变成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文档,但我什么也没有发现。
您可以使用dictionary
并使用两个字典来来回操作
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;
}
您可以使用以下内容:
// 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:
通常我希望有方法,但似乎没有。 对此有什么合理的检查方法?