[ toroman @ 23.12.2007. 19:10 ] @
| Dakle, igram se sa Javom i .NOT znam samo površno, toliko da ne znam ni kako da pročitam neki ulaz :)
Radi se o tome da na takmičenjima iz informatike često bude dat neki ulaz iz fajla ili konzole, tipa
N
a b c d
broj broj string
broj broj string
...
E sad u Javi postoji Scanner za pojednostavljenje čitanja takvih ulaza i za one koji ne znaju on ima metode nextInt, nextLine, setDelimiter itd.
Pitam se kako se to radi u .NET-u, odnosno C#?
Do sada sam problem rešavao tako što čitam liniju po liniju sa Console.ReadLine() pa onda Split() međutim ne sviđa mi se to riješenje, jer smara, a i Split može da razdvaja samo po karakteru, a šta ako nekad treba po nekom stringu...
Eto ljudi moji, pozdrav! |
[ toroman @ 24.12.2007. 21:25 ] @
Nije valjda da ni među silnim dodacima u .NET 3.5 nema nečeg ovakvog?
[ mmix @ 24.12.2007. 23:43 ] @
Ja koliko znam ne postoji verzija skenera za .NET
[ toroman @ 25.12.2007. 08:11 ] @
Ma uredu je meni sto nema bas Scanner, ali ima li nesto barem slicno,
kao scanf ili ??? Mislim scanf u Javi nije moguc, dok u C# moze zbog
out i ref parametara :( Bas steta ako ga nema.
[ NPGD @ 31.12.2007. 08:22 ] @
Ne postoji verzija Scaner u C#.......
Da procitas ulaz u C# treba ti System.Console.ReadLine() .....a za ispis System.Console.WriteLine() ili samo Write() ako hoces u jednom redu.......
Nadam se da ti je donekle pomoglo ovo ako imas jos pitanja posalji pm........
Pozz ....
[ mmix @ 31.12.2007. 08:51 ] @
Covek je vec rekao da mu Console.ReadLine ne odgovara kao resenje.
[ Shadowed @ 02.01.2008. 13:23 ] @
Citat: toroman: a i Split može da razdvaja samo po karakteru, a šta ako nekad treba po nekom stringu...
Verovatno ti ne pomaze narocito, ali moze Split po String-u.
[ Fedya @ 02.01.2008. 14:16 ] @
System.IO.StreamReader
[ Predrag Glumac @ 02.01.2008. 16:42 ] @
Inace ne vidim razlog za scanner u .net-u, jer ako su parametri odvojeni spejsom i redosled je odredjen, string.split i valuetype.parse zavrsice posao.
[Obrisan deo koji se odnosi na obrisanu poruku.]
[Ovu poruku je menjao Shadowed dana 02.01.2008. u 22:41 GMT+1]
[ toroman @ 02.01.2008. 21:08 ] @
Jel' toliko teško da se otvori nova tema?
Stvarno bruka ovaj C#. A i taj Split sa stringom ne znam baš kako ide, gledao sam prototipove, ima ih 6 i ono, nije mi baš očigledno, može neki primer Shadowed?
[ Predrag Glumac @ 02.01.2008. 21:27 ] @
Sto bruka, jer ne dobijas bash sve na tacni 
Pa recimo da imas format ulaza kao int-kalauz-decimal-kalauz-string (12kalauz3.14kaluzDjura):
Code:
string[] parms ;
int i;
decimal d;
string s;
parms = inputLine.Parse("kalauz");
i = Int32.Parse(parms[0]);
d = Decimal.Parse(parms[1]);
s = parms[2];
[ toroman @ 02.01.2008. 21:46 ] @
Pa ne da ne dobijam na tacni, nego da ne uvredim nikog, ne dobijam ništa.
Šta je ovo inputLine.Parse ? Ako misliš na Split, to ti neće proći.
Svejedno opet treba neki scanner ili sličan objekat. Nadam se da ova klasa što je kolega dade može nešto da pomogne...
[ Shadowed @ 02.01.2008. 22:09 ] @
Citat: toroman: Stvarno bruka ovaj C#. A i taj Split sa stringom ne znam baš kako ide, gledao sam prototipove, ima ih 6 i ono, nije mi baš očigledno, može neki primer Shadowed?
Code:
string Source = "part1][part2][part3";
string[] Separator = { "][" };
string[] Parts = Source.Split(Separator, System.StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < Parts.Length; i++) {
MessageBox.Show(Parts[i]);
}
Edit: Length umesto Count.
[Ovu poruku je menjao Shadowed dana 02.01.2008. u 23:24 GMT+1]
[ toroman @ 02.01.2008. 22:13 ] @
Joj mrak mi pade na oci od ovoga... Hvala u svakom slucaju.
[ Shadowed @ 02.01.2008. 22:25 ] @
Btw, ako radis sa .net Framework 3.5 mozes da napravis Extended method koji prihvata samo jedan String umesto niza.
[ toroman @ 02.01.2008. 22:33 ] @
Extra, to su "pozajmili" iz AspectJ-a ;)
Doobro, ono, jest' dugačko ali radi. Ipak moram da nastavim potragu za nečim praktičnijim, za takmičenja... Scannerrrrr :)
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|