Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
František Pastorek:5.11.2014 22:10

Mam takýto problém. Na vstupe zadávam čísla, napríklad 10 čísel, a jednotlivé čísla sú oddelené medzerou. Potrebujem všetky čísla nahádzať do int array ale akosi sa mi nedarí. Jediný spôsob čo ma napadá je cez string a odtiaľ povyťahovať tie čísla a zapísať do int array. Príde mi to trošku nepraktické. A chcem sa spýtať či na to nie je iný spôsob. Vopred ďakujem za odpoveď.

 
Odpovědět
5.11.2014 22:10
Avatar
Odpovídá na František Pastorek
Lukáš Křehula:5.11.2014 22:33

Napadl mě jeden způsob

string vstup = "10 20 30 40 50 60 70 80 90 100";
string[] cisla = vstup.Split(' ');
List<int> num = new List<int>();
foreach (string str in cisla)
{
    int a;
    if (Int32.TryParse(str, out a))
        num.Add(a);
    else
        continue;
}
int[] nums = num.ToArray();

Určitě existují i lepší způsoby.
Každopádně tento kód i kontroluje, jestli je to celočíšelný vstup. V proměnné 'nums' budeš mít uložené všechny správné vstupy. Nemusíš vlastně ani použít pole, stačí ti ten List.

Editováno 5.11.2014 22:34
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
5.11.2014 22:33
Avatar
Ondřej Štorc
Tvůrce
Avatar
Nahoru Odpovědět
5.11.2014 22:35
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
František Pastorek:5.11.2014 22:54

Kaczmi

ja ti moc ďakujem. Úplne som zabudol na funkciu Split. Som ti vďačný, pretože tento problém riešim už asi 2 hodiny. Ďakujem ti moc za pripomenutie. Nepotrebujem to na nič praktické, len zajtra je zenit v programovaní a tam takéto sprostosti bývajú. Ešte raz ďakujem.

LOCK

 
Nahoru Odpovědět
5.11.2014 22:54
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na František Pastorek
Jan Vargovský:5.11.2014 22:56
string input = "10 20 30 40 50 60 70 80 90 100";
int[] numbers = input.Split(' ').Select(s => int.Parse(s)).ToArray();

EDIT: možná lepší takto

int[] numbers = input.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries).Select(s => int.Parse(s)).ToArray();
Editováno 5.11.2014 22:57
 
Nahoru Odpovědět
5.11.2014 22:56
Avatar
František Pastorek:5.11.2014 23:19

Diky moc :)

 
Nahoru Odpovědět
5.11.2014 23:19
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.