Как получить ASCII для нечисловых символов в заданной строке - PullRequest
4 голосов
/ 12 ноября 2010

Моя строка будет выглядеть следующим образом

String S="AB-1233-444";

От этого я хотел бы отделить AB и хотел бы узнать ASCII для этих 2 алфавитов.

Ответы [ 5 ]

1 голос
/ 12 ноября 2010

Вы должны быть в состоянии использовать LINQ, чтобы позаботиться об этом (сейчас тестируйте синтаксис):

var asciiCodes = S.Where(c => char.IsLetter(c)).Select(c => (int)c);

Или, если вы не хотите использовать версию LINQ-y:

var characterCodes = new List<int>();

foreach(var c in S)
{
    if(char.IsLetter(c))
    {
        characterCodes.Add((int)c);
    }
}
0 голосов
/ 12 ноября 2010

Вы можете использовать подстроку, чтобы получить только алфавиты, и использовать цикл for, чтобы сохранить значение алфавитов в массиве и распечатать его один за другим

0 голосов
/ 12 ноября 2010
  var result = (from c in S.ToCharArray() where
   ((int)c >= (int)'a' &&
   (int)c <= (int)'z') || 
   ((int)c >= (int)'A' && 
   (int)c <= (int)'Z') select c).ToArray();

Версия, отличная от linq, выглядит следующим образом:

List<char> result = new List<char>();
foreach(char c in S)
{
  if(((int)c >= (int)'a' &&
     (int)c <= (int)'z') || 
     ((int)c >= (int)'A' && 
     (int)c <= (int)'Z'))
      {
        result.Add(c);
      }
 }
0 голосов
/ 12 ноября 2010

Для разделения (если вы знаете, что он разделен на - вы можете использовать string.Split

Чтобы получить ASCII-представление 'A', например, используйте следующий код

int asciivalue = (int)'A';

Таким полным примером может быть

Dictionary<char,int> asciilist = new Dictionary<char,int>();
string s = "AB-1233-444";
string[] splitstrings = s.Split('-');
foreach( char c in splitstrings[0]){
  asciilist.Add( c, (int)c );
}
0 голосов
/ 12 ноября 2010

Вы можете преобразовать символ в кодовую точку, используя это: (int)'a'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...