给字符串加密解密
加密规则:输入1a2b3c 输出 abbccc
解密:输入abbccc 输出 1a2b3c
代码:
using System;
namespace 加密解密
{
class Program
{
static void Main(string[] args)
{
Encryption("4b2a8p");
Decryption("ppppppoovvv");
Console.ReadKey(); // 等待用户按下任意键
}
// 加密
static void Encryption(string shuju)
{
string jiamizifu = ""; // 初始化加密后的字符串
for (int i = 0; i < shuju.Length; i += 2) // 每次跳 2 个字符(数字 + 字母)
{
// 获取数字部分(字符重复次数)
if (char.IsDigit(shuju[i]))
{
int repeatCount = int.Parse(shuju[i].ToString());
// 获取字母部分
if (i + 1 < shuju.Length && char.IsLetter(shuju[i + 1]))
{
char character = shuju[i + 1];
// 根据重复次数拼接字符
for (int j = 0; j < repeatCount; j++)
{
jiamizifu += character;
}
}
}
}
Console.WriteLine("加密后的字符串:" + jiamizifu);
}
// 解密
static void Decryption(string shuju)
{
string jiemizifu = ""; // 初始化解密后的字符串
int repeatCount = 1; // shuzu[i] 重复的次数
for (int i = 0; i < shuju.Length; i++)
{
char currentChar = shuju[i];
repeatCount = 1;
// 统计连续相同字符的数量
while (i + 1 < shuju.Length && shuju[i + 1] == currentChar)
{
repeatCount++;
i++;
}
// 将统计结果转换为数字加字符的形式
jiemizifu += repeatCount.ToString() + currentChar;
}
Console.WriteLine("解密后的字符串:" + jiemizifu);
}
}
}
输出: