Ich habe kürzlich an einem Projekt gearbeitet, bei dem ich eine reguläre Zeichenkette in ASCIII hexadezimal konvertieren und das Hex in einer Zeichenkette speichern musste.Wie konvertiert man eine reguläre Zeichenfolge in eine ASCII-hexadezimale Zeichenfolge in C#?
So hatte ich so etwas wie
string random_string = "4000124273218347581"
und ich wollte es in eine hexadezimale Zeichenfolge in Form konvertieren
string hex_string = "34303030313234323733323138333437353831"
Dieses wie eine seltsam bestimmte Aufgabe scheinen mag, aber es ist eine begegnete ich und Als ich versuchte herauszufinden, wie ich es ausführen sollte, konnte ich keine Antworten online finden.
Wie auch immer, ich habe es herausgefunden und eine Klasse erstellt, um die Dinge in meinem Code übersichtlicher zu gestalten.
Falls jemand sonst eine reguläre Zeichenfolge in eine hexadezimale Zeichenfolge konvertieren muss, werde ich in einem Moment eine Antwort schreiben, die meine Lösung enthalten wird.
(Ich bin ziemlich neu Ich hoffe, dass dies so Stackoverflow zu tun in Ordnung ist)
========================= ================
Stellt sich heraus, dass ich meine Frage nicht selbst innerhalb der ersten 8 Stunden der Frage beantworten kann, weil ich nicht genug Reputation habe.
So kleben ich meine Antwort hier statt:
Okay, also hier ist meine Lösung:
ich eine Klasse erstellt StringToHex
im Namensraum genannt
public class StringToHex
{
private string localstring;
private char[] char_array;
private StringBuilder outputstring = new StringBuilder();
private int value;
public StringToHex(string text)
{
localstring = text;
}
public string ToAscii()
{
/* Convert text into an array of characters */
char_array = localstring.ToCharArray();
foreach (char letter in char_array)
{
/* Get the integral value of the character */
value = Convert.ToInt32(letter);
/* Convert the decimal value to a hexadecimal value in string form */
string hex = String.Format("{0:X}", value);
/* Append hexadecimal version of the char to the string outputstring*/
outputstring.Append(Convert.ToString(hex));
}
return outputstring.ToString();
}
}
Und Sie verwenden müssen etwas von der Form zu tun:
/* Convert string to hexadecimal */
StringToHex an_instance_of_stringtohex = new StringToHex(string_to_convert);
string converted_string = an_instance_of_stringtohex.ToAscii();
Wenn es ist Die konvertierte Zeichenkette sollte doppelt so lang sein wie die ursprüngliche Zeichenkette (wegen hex mit zwei Bytes, um jedes Zeichen darzustellen).
Jetzt, da jemand bereits erwähnt, können Sie einen Artikel tun etwas Ähnliches finden Sie hier:
http://www.c-sharpcorner.com/UploadFile/Joshy_geo/HexConverter10282006021521AM/HexConverter.aspx
Aber ich habe es viel Hilfe nicht für meine bestimmte Aufgabe auffinden und ich möchte denke, dass meine Lösung eleganter ist;)
Wie verhält sich der "hexadezimale String" zum Original? Welche Regeln? – Oded
@Oded: ASCII Rulez! –
Setzen Sie eine '3' vor jedem Char :) –