我想加密以下字符串。
的myString = “adhbegadhjmqadguvaadgaegadguvabdh”;
string[] varEnclist = {
"adg", "beh", "cfi", "jmp", "knq", "lor", "svy", "twz", "uxa", "aeg",
"bdh", "cdi", "jnp", "kmq", "lmr", "swy", "tvz", "uva", "afg", "bfh",
"cei", "jop", "koq", "lnr", "sxy", "txa", "uwa", "ajk", "adh", "beg",
"cfg", "jmq", "knp", "lop", "adi", "bei", "cfh", "hio"};
string[] varDataList = {
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
"o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "_", "0",
"1", "2", "3", "4", "5", "6", "7", "8", "9", "."};
varEnclist
中Mystring
中的任何数据都表示我必须将其替换为varDataList
。
我必须这样做。 下面是我的代码,但它不起作用。例如。如果在
adg
中找到Mystring
,则表示我必须将其替换为a
public string Encrypt(string Mystring="adhbegadhjmqadguvaadgaegadguvabdh") { string[] varEnclist = {"adg", "beh", "cfi", "jmp", "knq", "lor", "svy", "twz", "uxa", "aeg", "bdh", "cdi", "jnp", "kmq", "lmr", "swy", "tvz", "uva", "afg", "bfh", "cei", "jop", "koq", "lnr", "sxy", "txa", "uwa", "ajk", "adh", "beg", "cfg", "jmq", "knp", "lop", "adi", "bei", "cfh", "hio" }; string[] varDataList = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "_", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "." }; string strReplaced = ""; int i; for(i=0; i9 { strReplaced = StrValue.Replace(varEnclist [i], varDataList [i]); } return strReplaced; }
ProgID
答案 0 :(得分:1)
扫描(通过3个字母的块),查找(相应的字母)和Concat(最后的字符串):
using System.Linq;
...
string[] varEnclist = {
"adg", "beh", "cfi", "jmp", "knq", "lor", "svy", "twz", "uxa", "aeg",
"bdh", "cdi", "jnp", "kmq", "lmr", "swy", "tvz", "uva", "afg", "bfh",
"cei", "jop", "koq", "lnr", "sxy", "txa", "uwa", "ajk", "adh", "beg",
"cfg", "jmq", "knp", "lop", "adi", "bei", "cfh", "hio" };
string[] varDataList = {
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",
"o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "_", "0",
"1", "2", "3", "4", "5", "6", "7", "8", "9", "." };
...
string Mystring = "adhbegadhjmqadguvaadgaegadguvabdh";
string result = string.Concat(Enumerable
.Range(0, Mystring.Length / 3)
.Select(index => Mystring.Substring(index * 3, 3))
.Select(code => varDataList[Array.IndexOf(varEnclist, code)]));
Console.WriteLine(result);
结果:
1214arajark
如果要加密,可以使用相同的方法:
string encrypted = string.Concat(result
.Select(item => varEnclist[Array.IndexOf(varDataList, item.ToString())]));
Console.WriteLine(ecnrypted);
结果:
adhbegadhjmqadguvaadgaegadguvabdh
答案 1 :(得分:0)
尝试类似的东西;
int index = 0;
foreach (var s in varEnclist)
{
Mystring = Mystring.Replace(s, varDataList[index]);
index++;
}
<强>输出:强>
1214arajark
答案 2 :(得分:-1)
我不确定您的具体要求是什么,希望这有助于
string Mystring = "adhbegadhjmqadguvaadgaegadguvabdh";
StringBuilder sb = new StringBuilder(Mystring);
sb.Replace("dfd", "a");
sb.Replace("fee", "b");
sb.ToString();
或者这个会帮助
string[] str = { "dfd", "dfdf" };
string[] abc = { "a", "b" };
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.Length; i++)
{
str[i] = abc[i];
sb.Append(str[i]);
}
sb.ToString();