我需要一些帮助来创建一个程序,该程序在 UPPER 情况下需要输入首字母,在 lower 情况下需要所有其他输入。
编辑: 我认为你们中有些人不了解这个问题。我必须创建一个循环,要求用户从上至下输入第一个数字,如果不满足要求,则用户必须再次输入,直到第一个字母在上而其他字母在下。>
var novaDrzava = new Država ();
Console.Write ("Vnesite ime (prva začetnica naj bo velika, ostale male): ");
novaDrzava.Ime = Console.ReadLine ();
var drzava = novaDrzava.Ime;
var inicialka = drzava.Substring (0);
var ostale = drzava.Substring (1, drzava.Length - 1);
for (int i = 0; i <= malecrke.Length; i++) {
if (inicialka.Contains (velikecrke[i])) {
if (ostale.Contains (malecrke[i])) {
break;
} else {
Console.WriteLine ("Ponovno vnesite ime");
novaDrzava.Ime = Console.ReadLine ();
}
}
}
答案 0 :(得分:1)
如果我正确理解它,应该不难: 只需用
var firstletter = yourstring.Substring(0, 1);
其他一切
var everthingelse = yourstring.Substring(1);
firstletter = firstletter.ToUpper();
everthingelse = everthingelse.ToLower();
答案 1 :(得分:1)
您可能想研究正则表达式。像这样:
string inputOk = "Thisisatest";
string inputNok1 = "ThisisaTest";
string inputNok2 = "thisisatest";
bool resultOk = Regex.IsMatch(inputOk, "^[A-Z]{1}[a-z]+$");
bool resultNok1 = Regex.IsMatch(inputNok1, "^[A-Z]{1}[a-z]+$");
bool resultNok2 = Regex.IsMatch(inputNok2, "^[A-Z]{1}[a-z]+$");`
答案 2 :(得分:1)
static void Main(string[] args)
{
string inputValue = Console.ReadLine();
bool isValid = true;
foreach (char val in inputValue)
{
if (inputValue.First()==val && char.IsUpper(val))
{
//do nothing.
}
else if(char.IsLower(val))
{
// do nothing.
}
else
{
isValid = false;
Console.WriteLine("Invalid input string");
Console.ReadLine();
break;
}
}
if (isValid)
{
Console.WriteLine("Valid input string");
Console.ReadLine();
}
}
答案 3 :(得分:0)
您可能正在寻找标题大小写,其中每个单词都以大写字母开头(例如John Smith
)。如果是您的情况:
// Normilize: turn modificators in diactritics (e.g. "Hašek")
string drzava = Console.ReadLine().Normalize();
if (string.Equals(drzava, CultureInfo.CurrentCulture.TextInfo.ToTitleCase(drzava))) {
// Correct name in title case
}
或者如果我们只想使用单个名称(例如John
,而不是John Smith
)
if (!string.IsNullOrEmpty(drzava) &&
drzava.All(c => char.IsLetter(c)) &&
string.Equals(drzava, CultureInfo.CurrentCulture.TextInfo.ToTitleCase(drzava))) {
// Correct Name : Not empty, Letters only, Title Case
}
最后,您可以尝试正则表达式
using System.Text.RegularExpressions;
...
//TODO: change "*" into "+" if you want at least one lowercase symbol
if (Regex.IsMatch(drzava, @"^\p{Lu}\p{Ll}*$")) {
// Correct Name : Starts from upper case contains zero or more lowercase
}
答案 4 :(得分:0)
replace_escaped