Czy masz na myśli tylko znaki alfabetu, a nie cyfry? Chcesz w rezultacie uzyskać „jakość”? Bo wtedy mówienie o ASCII nie ma sensu.
Lars Truijens,
Chcę Ascii każdego znaku z tego ciągu, Ascii cyfr oraz ascii słowa „jakość”
RBS
Masz na myśli to, że chcesz uzyskać numeryczną wartość ASCII każdego znaku w ciągu, zakładając, że cały ciąg może być reprezentowany w ASCII. Twoje obecne sformułowanie jest bardzo zagmatwane.
To pokazuje mi System.Byte []. Musisz przejrzeć znaki w słowie. Nie wiem, jak to działa. Pomógł jednak OP, co ma znaczenie.
NikosV
Uwaga: Encoding.ASCIIjest skonfigurowany do emitowania jednostki kodu ASCII dla znaku zastępczego („?”) Dla znaków spoza zestawu znaków ASCII. Inne opcje - w tym zgłaszanie wyjątku - są dostępne w Encodingklasie. Oczywiście dostępne są także inne kodowania znaków - zwłaszcza UTF-8; Należy się zastanowić, czy faktycznie potrzebny jest ASCII.
Tom Blodget
37
string s ="9quali52ty3";foreach(char c in s){Console.WriteLine((int)c);}
Czy masz na myśli tylko znaki alfabetu, a nie cyfry? Chcesz w rezultacie uzyskać „jakość”? Możesz użyć Char.IsLetter lub Char.IsDigit, aby odfiltrować je jeden po drugim.
string s ="9quali52ty3";StringBuilder result =newStringBuilder();foreach(char c in s){if(Char.IsLetter(c))
result.Add(c);}Console.WriteLine(result);// quality
stringvalue="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]);}
Ten program akceptuje więcej niż jeden znak i wyświetla ich wartość ASCII:
using System;class ASCII{publicstaticvoidMain(string[] args){string s;Console.WriteLine(" Enter your sentence: ");
s =Console.ReadLine();foreach(char c in s){Console.WriteLine((int)c);}}}
Wcześniej respondenci odpowiedzieli na pytanie, ale nie podali informacji, których tytuł kazał mi oczekiwać. Miałem metodę, która zwracała jeden ciąg znaków, ale chciałem znak, który mógłbym przekonwertować na szesnastkowy. Poniższy kod ilustruje to, co moim zdaniem znajdę, mając nadzieję, że będzie to pomocne dla innych.
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);
Powyższy kod wyświetla następujące informacje w bezpośrednim oknie:
//Create a character to compare BOMchar byteOrderMark =(char)65279;if(sourceString.ToCharArray()[0].Equals(byteOrderMark)){
targetString = sourceString.Remove(0,1);}
Ta odpowiedź wymaga trochę więcej wyjaśnień. Jeśli masz kolegę biegle władającego językiem angielskim, z szacunkiem powinieneś poprosić o pomoc.
O. Jones
moje wyjaśnienie jest bardzo proste, ponieważ mój kod jest bardzo prosty bez żadnych zmiennych, ale wykorzystałem prostą koncepcję, w jaki sposób można wydrukować wartość ASCII indywidualna prosta, pobierz znak i przekonwertuj znak na wartość całkowitą, więc zaimplementuj to i jeśli mam błąd w moim wyjaśnieniu, więc proszę poprawić to dzięki
MA Nadeem
0
Dlaczego nie staromodną prostą drogą?
publicint[]ToASCII(string s){char c;int[] cByte =newint[s.Length];/ the ASCII stringfor(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);
Chociaż ten kod może rozwiązać problem, w tym wyjaśnienie, jak i dlaczego to rozwiązuje problem, naprawdę pomogłoby poprawić jakość twojego posta i prawdopodobnie zaowocowałoby większą liczbą pozytywnych głosów. Pamiętaj, że odpowiadasz na pytanie do czytelników w przyszłości, a nie tylko osoba, która zapyta teraz. Proszę edytować swoje odpowiedzi, aby dodać wyjaśnień i dać wskazówkę co zastosować ograniczenia i założenia.
Dharman
Daje błąd kompilacji: „Nieoczekiwany znak”. Dwóch `po ToString prawdopodobnie nie powinno tam być.
Odpowiedzi:
Z MSDN
Masz teraz tablicę wartości ASCII bajtów. Otrzymałem następujące informacje:
57 113 117 97 108 105 53 50 116 121 51
źródło
Encoding.ASCII
jest skonfigurowany do emitowania jednostki kodu ASCII dla znaku zastępczego („?”) Dla znaków spoza zestawu znaków ASCII. Inne opcje - w tym zgłaszanie wyjątku - są dostępne wEncoding
klasie. Oczywiście dostępne są także inne kodowania znaków - zwłaszcza UTF-8; Należy się zastanowić, czy faktycznie potrzebny jest ASCII.źródło
To powinno działać:
źródło
Czy masz na myśli tylko znaki alfabetu, a nie cyfry? Chcesz w rezultacie uzyskać „jakość”? Możesz użyć Char.IsLetter lub Char.IsDigit, aby odfiltrować je jeden po drugim.
źródło
źródło
Jeśli dobrze pamiętam, wartość ASCII to liczba siedmiu niższych bitów numeru Unicode .
źródło
Jeśli chcesz mieć kod znaków dla każdego znaku w ciągu, możesz zrobić coś takiego:
źródło
źródło
Ten program akceptuje więcej niż jeden znak i wyświetla ich wartość ASCII:
źródło
Wcześniej respondenci odpowiedzieli na pytanie, ale nie podali informacji, których tytuł kazał mi oczekiwać. Miałem metodę, która zwracała jeden ciąg znaków, ale chciałem znak, który mógłbym przekonwertować na szesnastkowy. Poniższy kod ilustruje to, co moim zdaniem znajdę, mając nadzieję, że będzie to pomocne dla innych.
Powyższy kod wyświetla następujące informacje w bezpośrednim oknie:
a 97 61
163 zł A3
Δ 916 394
√ 8730 221A
źródło
Możesz usunąć zestawienie komponentów za pomocą:
źródło
Lub w LINQ:
źródło
Chcę uzyskać wartość ASCII znaków w ciągu w C #.
Wszyscy udzielają odpowiedzi w tej strukturze. Jeśli mój ciąg ma wartość „9quali52ty3”, chcę mieć tablicę z wartościami ASCII każdego z 11 znaków.
ale w konsoli pracujemy szczerze, więc otrzymujemy znak i drukujemy kod ASCII, jeśli się pomylę, więc popraw odpowiedź.
źródło
Dlaczego nie staromodną prostą drogą?
źródło
// teraz jest lepiej;)
źródło