» »

[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:

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

kopernik ::

Vtipkaj v konzolo more *

]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.

]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?
"I am not an animal! I am a human being! I... am... a man!" - John Merrick


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Python separiranje besed v stavkih

Oddelek: Programiranje
91180 (994) Meizu
»

[BASH]Kako skripti podati argumente zapisane v datoteki?

Oddelek: Programiranje
71280 (1195) BlaY0
»

Izdelava menija v C-ju

Oddelek: Programiranje
81171 (918) Trancedeejay
»

Coding Style

Oddelek: Programiranje
433470 (2662) 64202
»

tomcat - problem z encodingom

Oddelek: Programiranje
72350 (2264) kopernik

Več podobnih tem