Forum » Programiranje » [Java]Problem z argumenti
[Java]Problem z argumenti
]Fusion[ ::
Danes sem naletel na zanimv pojav v javi, ki si ga težko razlagam, oziroma si ga ne morem razložit. Pa najboljše da kar prilimam kodo:
Ta deluje razen če kot argument podam "zvezdico" torej *. Takrat pa mi izpiše ime prve datoteke, ki je v mapi od programa. Še več, če napišeš recimo *.java ali *nal* bo izpisalo ime prve datoteke ki ustreza temu nizu, pričemer zvezdica predstavlja katerikoli niz nedoločene dolžine.
Sicer se da problem rešit s tem da daš celotno zadevo v narekovaje, ampak je v določenih primerih vseeno moteče.
Če ima kdo kako pametno razlago je dobrodeošel da jo deli.
LP
public class Test{ public static void main(String[] arg) { System.out.println(arg[0]); } }
Ta deluje razen če kot argument podam "zvezdico" torej *. Takrat pa mi izpiše ime prve datoteke, ki je v mapi od programa. Še več, če napišeš recimo *.java ali *nal* bo izpisalo ime prve datoteke ki ustreza temu nizu, pričemer zvezdica predstavlja katerikoli niz nedoločene dolžine.
Sicer se da problem rešit s tem da daš celotno zadevo v narekovaje, ampak je v določenih primerih vseeno moteče.
Če ima kdo kako pametno razlago je dobrodeošel da jo deli.
LP
"I am not an animal! I am a human being! I... am... a man!" - John Merrick
]Fusion[ ::
Ne razumem kaj hočeš. Če vtipkam več zvezdic zaporedoma recimo *** se zgodi enako.
"I am not an animal! I am a human being! I... am... a man!" - John Merrick
64202 ::
Shell (unix sh, windows cmd, ...) ti interpretira * kot ukaz, da naj se zadeva expanda v imena vsej fajlov v trenutnem direktoriju. Ko das * v narekovaje, shell prisilis da se vsebina ne interpretira in gre kot string procesu. Daj ispisi vsebino celega arga, ne samo prvega elementa, pa bos videl.
To expandanje je zato dobro, da ni treba vsakemu programu posebej implementirat interpreter za abc*.exe recimo. Ni pa to pretirano tezko, ker ima windows FindFirstFile/FindNextFile sistemski klic, unix pa glob.
To expandanje je zato dobro, da ni treba vsakemu programu posebej implementirat interpreter za abc*.exe recimo. Ni pa to pretirano tezko, ker ima windows FindFirstFile/FindNextFile sistemski klic, unix pa glob.
]Fusion[ ::
Hmm zanimivo. Saj sem že nekaj sumil sistem ker java nemogoče da bi to naredila. Je pa ta stvar nadležna v določenih primerih. Recimo zdaj ko moramo za šolo nardit program ki išče datoteke. Zaj bom pač moral dat vse v narekovaje :P
"I am not an animal! I am a human being! I... am... a man!" - John Merrick
DCER ::
Če ni eksplicitno receno da mora stvar delovati iz konzole naredi nek enostaven grafični vmesnik, pa bo problem resen
]Fusion[ ::
Eh te je še več dela :P Zaj dam vse skupaj v narekovaje pa je kul :)
Drugače pa bi se dalo to kak izkoristit? Če ima že to shell vgrajen kak bi to klical v mojem programu?
Drugače pa bi se dalo to kak izkoristit? Če ima že to shell vgrajen kak bi to klical v mojem programu?
"I am not an animal! I am a human being! I... am... a man!" - John Merrick
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Python separiranje besed v stavkihOddelek: Programiranje | 1169 (983) | Meizu |
» | [BASH]Kako skripti podati argumente zapisane v datoteki?Oddelek: Programiranje | 1271 (1186) | BlaY0 |
» | Izdelava menija v C-juOddelek: Programiranje | 1164 (911) | Trancedeejay |
» | Coding StyleOddelek: Programiranje | 3461 (2653) | 64202 |
» | tomcat - problem z encodingomOddelek: Programiranje | 2346 (2260) | kopernik |