C #의 문자열에서 문자의 ASCII 값을 가져오고 싶습니다.
내 문자열의 값이 "9quali52ty3"이면 11 자 각각의 ASCII 값이있는 배열이 필요합니다.
C #에서 ASCII 값을 어떻게 얻을 수 있습니까?
C #의 문자열에서 문자의 ASCII 값을 가져오고 싶습니다.
내 문자열의 값이 "9quali52ty3"이면 11 자 각각의 ASCII 값이있는 배열이 필요합니다.
C #에서 ASCII 값을 어떻게 얻을 수 있습니까?
답변:
에서 MSDN
string value = "9quali52ty3";
// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
이제 바이트의 ASCII 값 배열이 있습니다. 나는 다음을 얻었다 :
57113117 97108105 53 50116121 51
Encoding.ASCII
ASCII 문자 세트에없는 문자의 대체 문자 ( '?')에 대한 ASCII 코드 단위를 내보내도록 구성됩니다. 예외 발생을 포함한 다른 옵션은 Encoding
클래스 에서 사용할 수 있습니다 . 물론 다른 문자 인코딩, 특히 UTF-8도 사용할 수 있습니다. 실제로 원하는 것이 ASCII인지 질문해야합니다.
string s = "9quali52ty3";
foreach(char c in s)
{
Console.WriteLine((int)c);
}
숫자가 아닌 알파벳 문자 만 원한다는 뜻입니까? 결과적으로 "품질"을 원하십니까? Char.IsLetter 또는 Char.IsDigit을 사용하여 하나씩 필터링 할 수 있습니다.
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]);
}
이전 응답자들이 질문에 답했지만 제목이 예상했던 정보를 제공하지 않았습니다. 하나의 문자열을 반환하는 메서드가 있었지만 16 진수로 변환 할 수있는 문자를 원했습니다. 다음 코드는 다른 사람들에게 도움이되기를 바라면서 내가 찾을 것이라고 생각한 것을 보여줍니다.
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);
위의 코드는 직접 실행 창에 다음을 출력합니다.
a£Δ√
97 61
A3 163 파운드
Δ 916394
√ 8730221A
다음을 사용 하여 BOM 을 제거 할 수 있습니다 .
//Create a character to compare BOM
char byteOrderMark = (char)65279;
if (sourceString.ToCharArray()[0].Equals(byteOrderMark))
{
targetString = sourceString.Remove(0, 1);
}
C #의 문자열에서 문자의 ASCII 값을 가져오고 싶습니다.
모두가이 구조에서 답을 제시합니다. 내 문자열의 값이 "9quali52ty3"이면 11 자 각각의 ASCII 값이있는 배열이 필요합니다.
그러나 콘솔에서 우리는 솔직하게 작동하므로 문자를 얻고 내가 잘못하면 ASCII 코드를 인쇄하므로 내 대답을 수정하십시오.
static void Main(string[] args)
{
Console.WriteLine(Console.Read());
Convert.ToInt16(Console.Read());
Console.ReadKey();
}
string nomFile = "9quali52ty3";
byte[] nomBytes = Encoding.ASCII.GetBytes(nomFile);
string name = "";
foreach (byte he in nomBytes)
{
name += he.ToString("X02");
}
`
Console.WriteLine(name);
// 이제 더 나아졌습니다;)