csharp Разделяемстрокиизбукв,цифр,ибукв+цифр。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csharp Разделяемстрокиизбукв,цифр,ибукв+цифр。相关的知识,希望对你有一定的参考价值。
IZennoList lstString = project.Lists["lst_string"]; //Добавляем список из статических блоков.
lstString.Clear();
lstString.Add("только буквы");
lstString.Add("333777");
lstString.Add("И буквы и 12345"); //Делаем разделение цифры или другие символы кроме цифр то есть могут быть какие-то спец символы и т.д переносы строк. Если есть хотя бы один символ который от '12345' до '9' то тогда будет считаться, что строка содержит не только цифры но и буквы.
lstString.Add("");
//Создаются списки в которые мы будем раскладывать отсортированные строчки.
//Можно было привязаться к спискам уровня проекта но сделано на уровне сниппета.
List<string> lstOnlyLetters = new List<string>(); //Только буквы.
List<string> lstOnlyDigits = new List<string>(); //Только цифры.
List<string> lstBothTypes = new List<string>(); //И буквы и цифры.
//Перебираем цикл этого верхнего уровня.
//Цикл самого верхнего уровня перебирает строки. Каждую строку называем как 'strCandidate' - это кандижат на расмотрение который будет который будет потом куда-то рассортирован.
//'lstString' - это наш список который мы создали.
foreach (string strCandidate in lstString) {
//Каждая строка 'strCandidate' прийдётся у нас на отдельный массив символов. Массив отдельных объектов 'arrChars' при помощи метода 'ToCharArray()' преобразование к методу символов.
char[] arrChars = strCandidate.ToCharArray();
//нам нужно получить ответ на два вопроса:
//1. Есть ли в строке хотя бы одна цифра?
//2. Есть ли в строке хотя бы одна буква?
//При этом нам нужно прервать перебор отдельных символов внутри текущего кандидата, текущей строки. Тот самый момент когда мы получили ответ на 2 этих вопроса.
//Если строка включает сотню символов то первым у нас идёт символом цифра а вторым буква то мы не должны перебирать все 100 символов. Потому что ответ на этот вопрос мы получим уже на базе первого и второго символа.
bool blnLettersFound = false;
bool blnDigitsFound = false;
//Вложенным циклом перебираем отдельные объекты класса 'char' то есть отдельные символы перебирая которые получены у нас при помощи 'ToCharArray()'.
foreach (char Char in arrChars) { //Происходит перебор отдельных символов в строке.
//Любой символ в кодировке 'UTF-8' обладает своим кодом (кодом символа).
int intCharCode = Convert.ToInt32(Char); //Преобразовываем объект класса 'string' при помощи 'Convert.ToInt32' тогда мы получим числовое представление. Мы получим в переменную символ в кодировке 'Unicode'.
if (intCharCode>47&&intCharCode<58) { //Цифра '0' имеет код в 'Unicode' - '48'. Цифра '9' имеет код '57'. Соответственно если в переменной выше 'intCharCode' получили код символов и в этой строке делаем проверку. Если 'char' код больше '>47' и меньше '<58' и находится в диапазоте от '48' до '57' в этом случии будем уверены что этот символ число от '0' до '9'.
blnDigitsFound = true;//Это строка означает, что найдена хотя бы одна цифра.
if (blnLettersFound) break;
}else{
blnLettersFound=true; //Если 'intCharCode' не находится в этом диапазоне тогда понимаем ту версию, что в данной строке есть символы кроме цифр, есть буквы, любые символы кроме цифр считаем буквами (даже спец символы). В этом случии данную переменную 'blnLettersFound' устанавливаем как true, переменная говорит о том что найден хотябы один символ помимо цифр.
//Тут и ещё выше строки с 'break' делаем по той причине, если у нас в строке будет сотня символов нам не нужно перебирать всю сотню, нужно прервать наш перебор как только получили достоверный вопрос на '2' вопроса, что выше (даже если мы перебрали 2 первых символа). То есть проверяем получили ли цифры а буквы тоже? Если да то тут же прерываем, обратный вариант выше получили ли буквы и цифры то прерываем.
//Дольше всего будет идти выполнение если в строке только цифры и только буквы потому, что будет проверена вся строка, сотня символов. Мы не получим ответ на 2 вопроса в том случии если мы не перебирём все символы. В этом случии 'break' не сработает и будут перебраны все символы.
if (blnDigitsFound) break;
}
}
//теперь мы готовы принять решение, в какой список поместить строку
if (blnLettersFound&&blnDigitsFound) { //Эта строка говорит нам что имеются и буквы и цифры.
lstBothTypes.Add(strCandidate); //В этом случии складываем строку 'strCandidate' в список 'lstBothTypes'.
project.SendInfoToLog(String.Format("Строка '{0}' содержит и цифры и буквы", strCandidate));
}else if(blnLettersFound&&!blnDigitsFound){
lstOnlyLetters.Add(strCandidate);
project.SendInfoToLog(String.Format("Строка '{0}' содержит только буквы", strCandidate));
}else if(!blnLettersFound&&blnDigitsFound){
lstOnlyDigits.Add(strCandidate);
project.SendInfoToLog(String.Format("Строка '{0}' содержит только цифры", strCandidate));
}else{
project.SendInfoToLog("так не бывает");
}
}
以上是关于csharp Разделяемстрокиизбукв,цифр,ибукв+цифр。的主要内容,如果未能解决你的问题,请参考以下文章
css Когдатекстразбиваетсянаколонки,тобраузерпытаетсяравномернораспределитьсодержимоеблокапоуказанном
csharp Узнаёмпортинстансадляподключениядебаггера
xml МодифицируемзаголовокмодуляРекомендуемые(特色)вOpencart。 Заголовокберетсяизнастроексамогомодуля