Frage

Ich mag den ASCII-Wert des Zeichens in einer Zeichenfolge in C # erhalten.

Wenn meine Zeichenfolge den Wert „9quali52ty3“ hat, möchte ich ein Array mit den ASCII-Werten von jedem der 11 Zeichen.

Wie kann ich ASCII-Werte in C # zu bekommen?

War es hilfreich?

Lösung

MSDN

string value = "9quali52ty3";

// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);

Sie haben nun eine Reihe von ASCII-Wert des Bytes. Ich habe folgende Möglichkeiten:

57 113 117 97 108 105 53 50 116 121 51

Andere Tipps

string s = "9quali52ty3";
foreach(char c in s)
{
  Console.WriteLine((int)c);
}

Dies sollte funktionieren:

string s = "9quali52ty3";
byte[] ASCIIValues = Encoding.ASCII.GetBytes(s);
foreach(byte b in ASCIIValues) {
    Console.WriteLine(b);
}

Haben Sie meinen Sie nur die Buchstaben wollen und nicht die Ziffern? Sie wollen also „Qualität“ als Ergebnis? Sie können Char.IsLetter oder Char.IsDigit nutzen sie eins nach dem anderen zu filtern.

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]);
    }
byte[] asciiBytes = Encoding.ASCII.GetBytes("Y");
foreach (byte b in asciiBytes)
{
    MessageBox.Show("" + b);
}

Dieses Programm akzeptiert mehr als ein Zeichen und gibt ihren ASCII-Wert:

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 Responder haben die Frage beantwortet, aber noch nicht die Informationen der Titel führte mich zu erwarten, zur Verfügung gestellt. Ich hatte eine Methode, die eine einer Zeichenfolge zurückgegeben, aber Ich wollte einen Charakter, den ich hexadezimal umwandeln könnte. Der folgende Code demonstriert, was ich dachte, dass ich in der Hoffnung, für andere hilfreich ist es finden würde.

  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 das folgende an dem sofortigen Fenster:

a£Δ√

a 97 61

£ 163 A3

Δ 916 394

√ 8730 221A

string text = "ABCD";
for (int i = 0; i < text.Length; i++)
{
  Console.WriteLine(text[i] + " => " + Char.ConvertToUtf32(text, i));
}

Wenn ich mich richtig erinnere, der ASCII-Wert ist die Anzahl der unteren sieben Bits des Unicode Nummer.

Wenn Sie die charCode für jedes Zeichen in der Zeichenfolge möchten, können Sie etwas tun könnte:

char[] chars = "9quali52ty3".ToCharArray();

Sie können die BOM mit:

//Create a character to compare BOM
char byteOrderMark = (char)65279;
if (sourceString.ToCharArray()[0].Equals(byteOrderMark))
{
    targetString = sourceString.Remove(0, 1);
}

oder in LINQ:

string value = "9quali52ty3";

var ascii_values = value.Select(x => (int)x);

var as_hex = value.Select(x => ((int)x).ToString("X02"));

Ich mag den ASCII-Wert des Zeichens in einer Zeichenfolge in C # erhalten.

Jede Antwort in dieser Struktur verleihen. Wenn meine Zeichenfolge den Wert „9quali52ty3“ hat, möchte ich ein Array mit den ASCII-Werten von jedem der 11 Zeichen.

aber in der Konsole wir Offenheit arbeiten, damit wir ein Zeichen und drucken den ASCII-Code, wenn ich so falsch bitte meine Antwort korrigieren.

 static void Main(string[] args)
        {
            Console.WriteLine(Console.Read());
            Convert.ToInt16(Console.Read());
            Console.ReadKey();
        }

Warum nicht auf die altmodische Art und Weise einfach?

    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;
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top