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。 Заголовокберетсяизнастроексамогомодуля

php Определяемисоздаемнабориликомплектутовара

csharp Списокдляразмещениярезультата