Maison > développement back-end > Tutoriel C#.Net > Introduction détaillée aux gadgets de traitement de chaînes C#

Introduction détaillée aux gadgets de traitement de chaînes C#

黄舟
Libérer: 2017-03-17 11:43:32
original
1547 Les gens l'ont consulté

Cet article présente principalement le gadget de traitement C#string. Les fonctions incluent : convertir en majuscules ; convertir en chaîne inversée ; Correspondance d'expression régulière ; cryptage base64 ; cryptage et décryptage ROT13 ; MD5 cryptage 32 bits. A une très bonne valeur de référence. Jetons un coup d'œil avec l'éditeur ci-dessous

J'étais obsédé par la sécurité quand j'étais à l'université, j'ai toujours voulu écrire un petit programme pour traiter les chaînes.

Malheureusement, je n’avais pas beaucoup de temps à ce moment-là, alors j’ai continué à remettre ça à ces vacances d’hiver.

Je n'ai rien à faire pendant les vacances d'hiver, j'ai donc écrit un petit programme pour mettre en pratique mes compétences et réviser les formulaires et les bases.

implémente les fonctions suivantes :

convertir en majuscules

convertir en minuscules

Chaîne inversée

Faire correspondre le nombre d'occurrences d'une chaîne

Correspondance régulière

Cryptage base64

Déchiffrement base64

Cryptage et décryptage ROT13

Cryptage MD5 32 bits

Le programme est encore très simple, sans robustesse et sans vérification des entrées.

Créez des bugs avec soin (Soyez prudent

Et s'il vous plaît, ne vous plaignez pas de mon nom de variable et de mon nom de méthode. Si vous n'avez pas appris le pinyin depuis l'école primaire, vous ne comprendrez certainement pas : )

Parce que j'ai commencé à faire cela comme un projet de test à l'aveugle.

Je suis vraiment trop paresseux pour le traduire

Il existe une méthode intégrée pour convertir en majuscules et minuscules

Console.WriteLine(s.ToUpper());//转换成大写
Console.WriteLine(s.ToLower());//转换成小写
Copier après la connexion

Sortie à l'envers Vérifiez le numéro d'une certaine chaîne courte dans la chaîne

public static void fanxiang(string s)
  {
   char[] arrey = s.ToCharArray();
   StringBuilder s1 = new StringBuilder("");
   for (int i = arrey.Length - 1; i >= 0; i--)
   {
    s1.Append(Convert.ToString(arrey[i]));
   }
   Console.WriteLine("反向字符串为{0}",s1);
  }
Copier après la connexion

public static void pipei(string s)
  {
   int count = 0;
   int i;
   Console.WriteLine("请输入短字符串");
   string s2 = Console.ReadLine();
   while ((i=s.IndexOf(s2)) >= 0)
   {
    count++;
    s = s.Substring(i + s2.Length);
   }
   Console.WriteLine("字符串中出现了{0}次{1}", count, s2);
  }
Copier après la connexion

correspondance régulière

Je n'ai jamais appris les connaissances des cours réguliers. J'ai beaucoup lu en ligne et la plupart d'entre eux parlent de cours réguliers plutôt que de cours réguliers. J'ai été coincé à écrire ceci pendant environ une journée, et il contient encore des bugs.

Lorsqu'il n'y a pas de résultat correspondant ou que la correspondance est vide ? Provoquera plusieurs sauts de ligne. J'ai aussi oublié comment j'avais testé le bug à ce moment-là.

Tous les jardiniers qui ont des idées peuvent partager leurs idées.

public static void zzpipei(string s)
  {
   Console.WriteLine("请输入正则表达式");
   string zz = Console.ReadLine();
   Regex re = new Regex(zz);
   string s2 = "";
   if (re.IsMatch(s))
   {
    Console.WriteLine("匹配成功");
    MatchCollection mc = re.Matches(s);
    foreach (Match ma in mc)
    {
     s2 += ma.Value;
     s2 += ("\r\n");
    }
    Console.WriteLine("一行为一个匹配结果");
    Console.WriteLine(s2);
   }
   else
   { Console.WriteLine("无匹配结果"); }
  }
Copier après la connexion

cryptage base64

La méthode utilisée est également intégrée. Le cryptage des caractères chinois est différent du cryptage de certains sites Web.

 public static void basejiami(string s)
  {
   byte[] bytes = Encoding.Default.GetBytes(s);
    Console.WriteLine("字符串base64加密为{0}", Convert.ToBase64String(bytes));
  }
Copier après la connexion

Déchiffrement base64

 public static void basejiemi(string s)
  {
   byte[] bytes = Convert.FromBase64String(s);
    Console.WriteLine("字符串base64解密为{0}", Encoding.Default.GetString(bytes));
  }
Copier après la connexion

Cryptage et décryptage ROT13

ROT13 est un simple chiffre de remplacement. ROT13 est également une variante du chiffre César développé dans le passé dans la Rome antique.

ROT13 remplace 13 bits en arrière, c'est-à-dire que A est converti en N, B est converti en O, et ainsi de suite.

Le chiffre César remplace 3 chiffres à l’envers. Cette méthode peut être modifiée pour déchiffrer le chiffre César, et cette méthode est sensible à la casse.

ROT13 est son propre inverse ; c'est-à-dire que pour restaurer ROT13, il suffit d'appliquer le même algorithme de cryptage, afin que la même opération puisse être utilisée pour le cryptage et le déchiffrement.

Cet algorithme n'offre pas de véritable sécurité cryptographique, il ne doit donc pas être utilisé à des fins nécessitant de la sécurité. Il est souvent cité comme exemple de cryptage faible.

public static void rotjm(string s)
  {
   string jmzf = "";//解密加密后的字符串
   char[] arrey = s.ToCharArray();
   Console.WriteLine("字符串长度为{0}", arrey.Length);
   for (int i = 0; i < arrey.Length; i++)
   {
    int zfcode = (int)arrey[i];
    if (zfcode >= 97 && zfcode <= 109)
     zfcode = zfcode + 13;
    else if (zfcode >= 110 && zfcode <= 122)
     zfcode = zfcode - 13;
    else if (zfcode >= 65 && zfcode <= 77)
     zfcode = zfcode + 13;
    else if (zfcode >= 78 && zfcode <= 90)
     zfcode = zfcode - 13;
    jmzf = jmzf + (char)zfcode;
   }
   Console.WriteLine("结果为{0}", jmzf);
  }
Copier après la connexion

Remplacer la chaîne

public static void thzf(string s)
  {
   Console.WriteLine("请输入想要被替换的字符串");
   string str1 = Console.ReadLine();
   Console.WriteLine("请输入想要替换成的字符串");
   string str2 = Console.ReadLine();
   Console.WriteLine(s.Replace(str1, str2));
  }
Copier après la connexion

Cryptage MD5 32 bits

public static void md5jm(string s)
  {
   MD5 md5 = new MD5CryptoServiceProvider();
   //将字符编码为字节序列
   byte[] data = System.Text.Encoding.Default.GetBytes(s);
   byte[] md5data = md5.ComputeHash(data);
   md5.Clear();
   //遍历加密数组,加密字节,该方法为32位加密
   string str = "";
   for (int i = 0; i < md5data.Length; i++)
   {
    str += md5data[i].ToString("x").PadLeft(2, &#39;0&#39;);
   }
   Console.WriteLine("加密结果为{0}",str);
  }
Copier après la connexion

Mon programme, Utilisation Cadre .NET 4.0.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal