Ich möchte den ASCII-Wert von Zeichen in einer Zeichenfolge in C # erhalten.
Wenn meine Zeichenfolge den Wert "9quali52ty3" hat, möchte ich ein Array mit den ASCII-Werten der 11 Zeichen.
Wie kann ich ASCII-Werte in C # erhalten?
Ich möchte den ASCII-Wert von Zeichen in einer Zeichenfolge in C # erhalten.
Wenn meine Zeichenfolge den Wert "9quali52ty3" hat, möchte ich ein Array mit den ASCII-Werten der 11 Zeichen.
Wie kann ich ASCII-Werte in C # erhalten?
Antworten:
Von MSDN
string value = "9quali52ty3";
// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
Sie haben jetzt ein Array des ASCII-Werts der Bytes. Ich habe folgendes:
57 113 117 97 108 105 53 50 116 121 51
Encoding.ASCII
ist so konfiguriert, dass die ASCII-Codeeinheit für das Ersatzzeichen ('?') Für Zeichen ausgegeben wird, die nicht im ASCII-Zeichensatz enthalten sind. Andere Optionen - einschließlich des Auslösens einer Ausnahme - sind in der Encoding
Klasse verfügbar . Natürlich sind auch andere Zeichenkodierungen - insbesondere UTF-8 - verfügbar. Man sollte sich fragen, ob tatsächlich ASCII gewünscht wird.
string s = "9quali52ty3";
foreach(char c in s)
{
Console.WriteLine((int)c);
}
Meinst du, du willst nur die alphabetischen Zeichen und nicht die Ziffern? Sie wollen also "Qualität"? Sie können Char.IsLetter oder Char.IsDigit verwenden, um sie einzeln herauszufiltern.
string s = "9quali52ty3";
StringBuilder result = new StringBuilder();
foreach(char c in s)
{
if (Char.IsLetter(c))
result.Add(c);
}
Console.WriteLine(result); // quality
string value = "mahesh";
// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
for (int i = 0; i < value.Length; i++)
{
Console.WriteLine(value.Substring(i, 1) + " as ASCII value of: " + asciiBytes[i]);
}
Wenn Sie den Zeichencode für jedes Zeichen in der Zeichenfolge möchten, können Sie Folgendes tun:
char[] chars = "9quali52ty3".ToCharArray();
Dieses Programm akzeptiert mehr als ein Zeichen und gibt seinen ASCII-Wert aus:
using System;
class ASCII
{
public static void Main(string [] args)
{
string s;
Console.WriteLine(" Enter your sentence: ");
s = Console.ReadLine();
foreach (char c in s)
{
Console.WriteLine((int)c);
}
}
}
Frühere Antwortende haben die Frage beantwortet, aber nicht die Informationen angegeben, die ich aufgrund des Titels erwartet hatte. Ich hatte eine Methode, die eine Zeichenfolge mit einem Zeichen zurückgab, aber ich wollte ein Zeichen, das ich in hexadezimal konvertieren konnte. Der folgende Code zeigt, was ich zu finden glaubte, in der Hoffnung, dass es für andere hilfreich ist.
string s = "\ta£\x0394\x221A"; // tab; lower case a; pound sign; Greek delta;
// square root
Debug.Print(s);
char c = s[0];
int i = (int)c;
string x = i.ToString("X");
c = s[1];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
c = s[2];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
c = s[3];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
c = s[4];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
Der obige Code gibt Folgendes an das unmittelbare Fenster aus:
a£Δ√
a 97 61
£ 163 A3
Δ 916 394
√ 8730 221A
Sie können die Stückliste entfernen mit:
//Create a character to compare BOM
char byteOrderMark = (char)65279;
if (sourceString.ToCharArray()[0].Equals(byteOrderMark))
{
targetString = sourceString.Remove(0, 1);
}
Ich möchte den ASCII-Wert von Zeichen in einer Zeichenfolge in C # erhalten.
Jeder gibt in dieser Struktur eine Antwort. Wenn meine Zeichenfolge den Wert "9quali52ty3" hat, möchte ich ein Array mit den ASCII-Werten der 11 Zeichen.
Aber in der Konsole arbeiten wir offen, also bekommen wir ein Zeichen und drucken den ASCII-Code, wenn ich falsch liege. Bitte korrigieren Sie meine Antwort.
static void Main(string[] args)
{
Console.WriteLine(Console.Read());
Convert.ToInt16(Console.Read());
Console.ReadKey();
}
Warum nicht der altmodische einfache Weg?
public int[] ToASCII(string s)
{
char c;
int[] cByte = new int[s.Length]; / the ASCII string
for (int i = 0; i < s.Length; i++)
{
c = s[i]; // get a character from the string s
cByte[i] = Convert.ToInt16(c); // and convert it to ASCII
}
return cByte;
}
string nomFile = "9quali52ty3";
byte[] nomBytes = Encoding.ASCII.GetBytes(nomFile);
string name = "";
foreach (byte he in nomBytes)
{
name += he.ToString("X02");
}
`
Console.WriteLine(name);
// es ist jetzt besser;)