Voglio ottenere il valore ASCII dei caratteri in una stringa in C #.
Se la mia stringa ha il valore "9quali52ty3", voglio un array con i valori ASCII di ciascuno degli 11 caratteri.
Come posso ottenere valori ASCII in C #?
Voglio ottenere il valore ASCII dei caratteri in una stringa in C #.
Se la mia stringa ha il valore "9quali52ty3", voglio un array con i valori ASCII di ciascuno degli 11 caratteri.
Come posso ottenere valori ASCII in C #?
Risposte:
A partire dal MSDN
string value = "9quali52ty3";
// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
Ora hai un array del valore ASCII dei byte. Ho ottenuto quanto segue:
57113117 97108105 53 50116121 51
Encoding.ASCII
è configurato per emettere l'unità di codice ASCII per il carattere sostitutivo ('?') Per i caratteri che non sono nel set di caratteri ASCII. Altre opzioni, inclusa la generazione di un'eccezione, sono disponibili nella Encoding
classe. E, naturalmente, sono disponibili anche altre codifiche di caratteri, specialmente UTF-8; Ci si dovrebbe chiedere se è ASCII che è effettivamente desiderato.
string s = "9quali52ty3";
foreach(char c in s)
{
Console.WriteLine((int)c);
}
Vuoi dire che vuoi solo i caratteri alfabetici e non le cifre? Quindi vuoi "qualità" come risultato? Puoi usare Char.IsLetter o Char.IsDigit per filtrarli uno per uno.
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]);
}
Se vuoi il codice di caratteri per ogni carattere nella stringa, potresti fare qualcosa del genere:
char[] chars = "9quali52ty3".ToCharArray();
Questo programma accetterà più di un carattere e restituirà il loro valore ASCII:
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);
}
}
}
Chi ha risposto in precedenza ha risposto alla domanda ma non ha fornito le informazioni che il titolo mi aveva fatto aspettare. Avevo un metodo che restituiva una stringa di un carattere ma volevo un carattere che potessi convertire in esadecimale. Il codice seguente dimostra cosa pensavo di trovare nella speranza che fosse utile per gli altri.
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);
Il codice precedente restituisce quanto segue nella finestra immediata:
a£Δ√
a 97 61
£ 163 A3
Δ 916 394
√ 8730 221A
Puoi rimuovere la distinta materiali utilizzando:
//Create a character to compare BOM
char byteOrderMark = (char)65279;
if (sourceString.ToCharArray()[0].Equals(byteOrderMark))
{
targetString = sourceString.Remove(0, 1);
}
Voglio ottenere il valore ASCII dei caratteri in una stringa in C #.
Ognuno conferisce risposta in questa struttura. Se la mia stringa ha il valore "9quali52ty3", voglio un array con i valori ASCII di ciascuno degli 11 caratteri.
ma in console lavoriamo con franchezza, quindi otteniamo un carattere e stampiamo il codice ASCII se sbaglio quindi per favore correggi la mia risposta.
static void Main(string[] args)
{
Console.WriteLine(Console.Read());
Convert.ToInt16(Console.Read());
Console.ReadKey();
}
Perché non alla vecchia maniera facile?
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);
// è meglio adesso;)