簡體   English   中英

輸入必須是大寫(第一個字母)和小寫(其他)

[英]Input must be upper case(first letter) and lower case (others)

我需要一些幫助來創建一個程序,需要輸入大寫 字母的首字母小寫的所有其他字母。

我試着編寫一些代碼,但我似乎無法弄明白。

編輯:我想你有些人不明白這個問題。 我必須創建一個循環,要求用戶輸入上面的第一個數字和下面的其他數字,如果不滿足要求,用戶必須再次輸入,直到第一個字母為高位而其他字母為低。

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 ();
        }
    }
}

如果我理解正確,那應該不難:只需帶上第一個字母即可

var firstletter = yourstring.Substring(0, 1);

其他一切

var everthingelse = yourstring.Substring(1);

firstletter = firstletter.ToUpper();
everthingelse = everthingelse.ToLower();

您可能希望查看正則表達式。 像這樣的東西:

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]+$");`
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();
            }

        }

您可能正在尋找標題案例 ,其中每個單詞都以大寫字母開頭(例如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
}
private static string CapitaliseFirstLetter(string str)
    {
        var Ustr = string.Empty;
        if (!String.IsNullOrEmpty(str))
        {
            Ustr = char.ToUpper(str.First()) + str.Substring(1).ToLower();
        }

        return Ustr;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM