IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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í.

Diskuze: Zapsat input uživatele do array, respektive převod array ze stringu na int.

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Tomáš Hauser:14.3.2018 19:43

Zdravím,
potřeboval bych poradit ohledně převodu user inputu do konzole na int array, se kterou bych mohl dál manipulovat. Rovnou to totiž nešlo, tak jsem to zkusil nejdřív zapsat do první array, která je stringová, a pak to převést po jednom do array, který je int, což nebylo zas tak chytrý, protože je to v podstatě ten samej krok, jen rozloženej na dva. Navíc když to čte v tý první for smyčce, tak musím dát 4 krát enter, aby se přečetlo všechno.
Poradíte mi prosím? Hledal jsem všude možně, ale nefunguje ani int.Parse ani in.TryParse a ani Covert.ToInt32().

Console.WriteLine("Kolik je hodin? hh:mm");
string[] CasString = new string[5];
for (int i = 0; i < 5; i++)
{
    if (i == 3) continue;                                    // Bez dvojtečky.
    CasString[i] = Console.ReadLine();
}
int[] CasInt = new int[5];
for (int i = 0; i < 5; i++)
{
    if (i == 3) continue;                                   // Vynechat třetí hodnotu.
    CasInt[i] = int.Parse(CasString[i]);      // Chybová hláška.
}
 
Odpovědět
14.3.2018 19:43
Avatar
Roman
Člen
Avatar
Roman:14.3.2018 19:54

Nactes cas do stringu a pak jej chces parsovat.Mel by jsi parsovat zvlast minuty a hodiny nebo co stim chces dale delat? Muzes pouzit pro dalsi praci s casem tridu DateTime. Za druhe proc dvakrat prochazis to same pole? V jednom cyklu nacti vyparsuj a uloz.

 
Nahoru Odpovědět
14.3.2018 19:54
Avatar
Tomáš Hauser:14.3.2018 19:59

Mně jde zatím jen o ten princip, vůbec ne o nějaký čas - učím se to. Tohle mi tam vzniklo jako jeden z marných pokusů přečíst input jako stringovou array.

 
Nahoru Odpovědět
14.3.2018 19:59
Avatar
Roman
Člen
Avatar
Roman:14.3.2018 20:20

Kdyz chces cist input jako string array pak cti bud znak po znaku pomoci Read nebo nacti cely string a preved na array. Bud tak ze projdes cely string znak po znaku a ulozis do pole nebo pomoci LINQ napr.

string [] test = "Test".ToCharArray().Select(c => c.ToString()).ToArray()
 
Nahoru Odpovědět
14.3.2018 20:20
Avatar
Roman
Člen
Avatar
Roman:14.3.2018 20:27

Pro studijni ucely

const int COUNT = 5;
           Console.WriteLine("Kolik je hodin? hh:mm");

           string CasString = string.Empty;
           int[,] CasInt = new int[COUNT, 2];

           for (int i = 0; i < COUNT; i++) {
               CasString = Console.ReadLine();
               int hodin = int.Parse(CasString.Split(':')[0]);
               int minut = int.Parse(CasString.Split(':')[1]);

               if (hodin >= 60 || minut >= 60) {
                   Console.WriteLine("Chybne zadani!");
                   i--;
               }
               else {
                   CasInt[i, 0] = hodin;
                   CasInt[i, 1] = minut;
               }
           }


           Console.WriteLine("Bylo zadano:");

           for (var i=0; i< COUNT; i++) {
               Console.WriteLine($"{CasInt[i, 0]}:{CasInt[i, 1]}");
           }

           Console.ReadKey();
 
Nahoru Odpovědět
14.3.2018 20:27
Avatar
Tomáš Hauser:14.3.2018 21:22

Díky. Takže se mám držet splitování, jo? Představoval jsem si to teda trochu jinak, ale děkuju. :D

 
Nahoru Odpovědět
14.3.2018 21:22
Avatar
Odpovídá na Tomáš Hauser
sadlomaslox25:15.3.2018 18:55

podle toho co si napsal, si chtel napsat presne tohle:

Console.WriteLine("Kolik je hodin? hh:mm");
string data = Console.ReadLine();
int[] values = new int[2];
values[0] = int.Parse(data.Substring(0, 2));
values[1] = int.Parse(data.Substring(3, 2));
 
Nahoru Odpovědět
15.3.2018 18:55
Avatar
Odpovídá na sadlomaslox25
Tomáš Hauser:16.3.2018 19:05

Co znamená (0, 2) ?

 
Nahoru Odpovědět
16.3.2018 19:05
Avatar
Patrik Řepa
Člen
Avatar
Odpovídá na Tomáš Hauser
Patrik Řepa:16.3.2018 19:51

Vrátí ti substring ze stringu podle parametrů.

string str = "ahojAHOJ";
string substring = str.Substring(4,4);  //výsledek bude AHOJ

První parametr je index na kterém chceš začít, druhý parametr je kolik písmen chceš dostat.

Editováno 16.3.2018 19:52
 
Nahoru Odpovědět
16.3.2018 19:51
Avatar
Tomáš Hauser:18.3.2018 22:06

Aha, díky.

 
Nahoru Odpovědět
18.3.2018 22:06
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 10 zpráv z 10.