Halloj, Vad vill du göra för validering? Att en int är inom ett visst intervall? Att det är en int? Alltså, jag vill veta att användaren har knappat in en talföljd mellan 0 och 9 och i annat fall retunera felmeddelande. Det är klart att man skulle kunna plocka ut varje tecken ur strängen och jämföra dem med värden i en array... tänkte att det kanske fanns ett smidigare sätt :) Hej Emil, Vad menar du med talföljd? Separerade med mellanslag? I så fall något sånt här: >> Mikael Fann till slut vad jag letade efter. Problemet var att jag konverterade det inmatade datat innan jag validera det.Validera integer
sitter i slutfasen med en liten konsolapplikation för omskalning av bilder.
Jag körde precis fast nu med integervalideringen... har aldrig gjort det förut faktiskt.
Hur gör man? :p
/EmilSv: Validera integer
Ska du konvertera ifrån string till int kan du titta på Convert.ToInt32. Där hittar du det.
int i = 100;
if (i < 100)
{
// i är mindre än 100
}
if (i > 100)
{
// i är större än 100
}
if (i == 100)
{
// i lika med 100
}
sedan är det bara att kombinera olika uttryck med || && och !.
typ:
if (i> 10 && i < 100)
{
// i är större än 10 men mindre än 100
}
Hoppas att det fungerar som svar! Annars är det bara att posta igen.
/H
Sv:Validera integer
Sv: Validera integer
/EmilSv:Validera integer
Du skulle väl kunna kolla med RegEx (kanske är onödigt?!) eller något annat sätt där man kollar [0-9]
Liknande om man ska kolla ifall det innehåller bokstäver [a-Z]
/mSv: Validera integer
string inString = ...; // hämta ifrån Console.ReadLine eller nåt.
string[] testInts = inString.Split(' ');
foreach(string s in testInts)
{
try
{
int i = Covert.ToInt32(s);
if (i<0 || i>9)
{
throw new ArgumentException("Talen måste vara mellan 0 och 9");
}
}
catch(Exception e)
{
throw new ArgumentException("Input måste bestå av heltal mellan 0 och 9 separerade av mellanslag.");
}
}
Sv: Validera integer
RegEx ja, där är svaret :)
Jag är ingen höjdare på RegEx men jag gör ett försök.
Tackar!
//EmilSv:Validera integer
Lösning:
private bool validateUserInput(string x)
{
char [] ca = x.ToCharArray();
for (int i = 0; i < ca.Length;i++)
{
if (ca[i] > 57 || ca[i] < 48)
{
Console.WriteLine(".....");
return false;
}
}
.......
return true;
}
/Emil