Kontrollera antal siffror i input c#

Permalänk

Kontrollera antal siffror i input c#

Lite vag rubrik kanske, men jag är klar med Programmering 1 nu och jag försöker fortsätta lite på egen hand.

Jag har skapat klassen Car och vill kunna låta användaren välja en årsmodell till nya objekt. Hur gör jag för att användaren ska bli tvungen att ange årtalet i fyra siffror?

Permalänk
Medlem

@ArtNr 3641081: Hej! Jag är själv nybörjare, men jag skulle nog använt mig av funktionen Length.

if(sträng.Length == 4) { gör något här }

Annars kan du konvertera input till en int med int.TryParse() för att kunna göra något i stil med

if(konverteradsträng > 1950 && konverteradsträng < 2020) { gör något här }

Visa signatur
Permalänk
Medlem

Reguljära uttryck (regular expressions eller regex) brukar vara ett bra sätt att validera strängar. Kolla t.ex.

https://www.tutorialspoint.com/csharp/csharp_regular_expressi...

https://docs.microsoft.com/en-us/dotnet/api/system.text.regul...

Visa signatur

| Ryzen 5800x | Asus prime x470 pro | Asus rtx 3080 tuf oc | Gskill 32gb 3,6ghz | aw3225qf |

Permalänk
Medlem

Att konvertera till int är nog det bästa sättet, eftersom du då även kan kontrollera att årtalet ligger inom ett giltigt spann.

Jag hade valt något lämpligt årtal som startår och det nuvarande året som slutår (t.ex. med DateTime.Now.Year för att hämta det nuvarande året från systemet). Som bonus kommer ditt program då fortsätta fungera även om 8000 år när årtalen får fem siffror

Permalänk
Medlem
Skrivet av perost:

Som bonus kommer ditt program då fortsätta fungera även om 8000 år när årtalen får fem siffror

Fast DateTime.MaxValue är 100 nanosekunder före år 10000, så programmet kommer bara fungera typ 7979 år och sju månader till!