it-swarm.com.de

Wie kommt man ASCII Wert der Zeichenfolge in C #

Ich möchte den ASCII -Wert von Zeichen in einer Zeichenfolge in C # abrufen.

Wenn mein String den Wert "9quali52ty3" hat, möchte ich ein Array mit den ASCII - Werten aller 11 Zeichen.

Wie bekomme ich ASCII Werte in C #?

90
RBS

Von MSDN

string value = "9quali52ty3";

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

Sie haben jetzt ein Array mit dem ASCII - Wert der Bytes. Ich habe folgendes bekommen:

57 113 117 97 108 105 53 50

172
Brig Lamoreaux
string s = "9quali52ty3";
foreach(char c in s)
{
  Console.WriteLine((int)c);
}
29
LeppyR64

Das sollte funktionieren:

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

Meinen Sie, Sie möchten 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
6
Lars Truijens
byte[] asciiBytes = Encoding.ASCII.GetBytes("Y");
foreach (byte b in asciiBytes)
{
    MessageBox.Show("" + b);
}
3
moleatom
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]);
    }
3
mahesh

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);
        }
    }
}
3
M hasan

Sie können das BOM entfernen, indem Sie

//Create a character to compare BOM
char byteOrderMark = (char)65279;
if (sourceString.ToCharArray()[0].Equals(byteOrderMark))
{
    targetString = sourceString.Remove(0, 1);
}
2
Md Shahzad Adil
string text = "ABCD";
for (int i = 0; i < text.Length; i++)
{
  Console.WriteLine(text[i] + " => " + Char.ConvertToUtf32(text, i));
}

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

2
Rauhotz

Wenn Sie den Zeichencode für jedes Zeichen in der Zeichenfolge wünschen, können Sie Folgendes tun:

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

Oder in LINQ:

string value = "9quali52ty3";

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

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

1
ZagNut

Frühere Responder haben die Frage beantwortet, aber nicht die Informationen bereitgestellt, die der Titel mich erwartete. Ich hatte eine Methode, die eine Zeichenfolge zurückgab, aber __. Ich wollte ein Zeichen, das ich in hexadezimal konvertieren konnte. Der folgende Code demonstriert, was ich dachte, ich würde es in der Hoffnung finden, 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 das folgende Fenster aus:

a£Δ√

a 97 61

£ 163 A3

Δ 916 394

√ 8730 221A

1
Tony Dallimore

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;
    }
0
F. Harthoorn

Ich möchte den ASCII -Wert von Zeichen in einer Zeichenfolge in C # abrufen.

Jeder kann in dieser Struktur eine Antwort erteilen . Wenn mein String den Wert "9quali52ty3" hat, möchte ich ein Array mit den ASCII - Werten jedes der 11 Zeichen.

aber in der Konsole arbeiten wir offen, so dass wir ein Zeichen bekommen und den ASCII Code drucken, falls ich falsch liege. Korrigieren Sie bitte meine Antwort.

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