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#

Mar 17, 2017 am 11:43 AM

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Active Directory avec C# Active Directory avec C# Sep 03, 2024 pm 03:33 PM

Guide d'Active Directory avec C#. Nous discutons ici de l'introduction et du fonctionnement d'Active Directory en C# ainsi que de la syntaxe et de l'exemple.

Sérialisation C# Sérialisation C# Sep 03, 2024 pm 03:30 PM

Guide de sérialisation C#. Nous discutons ici de l'introduction, des étapes de l'objet de sérialisation C#, du fonctionnement et de l'exemple respectivement.

Générateur de nombres aléatoires en C# Générateur de nombres aléatoires en C# Sep 03, 2024 pm 03:34 PM

Guide du générateur de nombres aléatoires en C#. Nous discutons ici du fonctionnement du générateur de nombres aléatoires, du concept de nombres pseudo-aléatoires et sécurisés.

Vue Grille de données C# Vue Grille de données C# Sep 03, 2024 pm 03:32 PM

Guide de la vue Grille de données C#. Nous discutons ici des exemples de la façon dont une vue de grille de données peut être chargée et exportée à partir de la base de données SQL ou d'un fichier Excel.

Modèles en C# Modèles en C# Sep 03, 2024 pm 03:33 PM

Guide des modèles en C#. Nous discutons ici de l'introduction et des 3 principaux types de modèles en C# ainsi que de ses exemples et de l'implémentation du code.

Nombres premiers en C# Nombres premiers en C# Sep 03, 2024 pm 03:35 PM

Guide des nombres premiers en C#. Nous discutons ici de l'introduction et des exemples de nombres premiers en c# ainsi que de l'implémentation du code.

Factorielle en C# Factorielle en C# Sep 03, 2024 pm 03:34 PM

Guide de Factorial en C#. Nous discutons ici de l'introduction de factorial en c# ainsi que de différents exemples et de l'implémentation du code.

La différence entre le multithreading et le C # asynchrone La différence entre le multithreading et le C # asynchrone Apr 03, 2025 pm 02:57 PM

La différence entre le multithreading et l'asynchrone est que le multithreading exécute plusieurs threads en même temps, tandis que les opérations effectuent de manière asynchrone sans bloquer le thread actuel. Le multithreading est utilisé pour les tâches à forte intensité de calcul, tandis que de manière asynchrone est utilisée pour l'interaction utilisateur. L'avantage du multi-threading est d'améliorer les performances informatiques, tandis que l'avantage des asynchrones est de ne pas bloquer les threads d'interface utilisateur. Le choix du multithreading ou asynchrone dépend de la nature de la tâche: les tâches à forte intensité de calcul utilisent le multithreading, les tâches qui interagissent avec les ressources externes et doivent maintenir la réactivité de l'interface utilisateur à utiliser asynchrone.

See all articles