Innehållsförteckning:
Video: vigenere (C) 2024
En gång i tiden använde de flesta Java-programmerare ett textbaserat utvecklingsgränssnitt. De skrev ett kommando i ett snyggt fönster, vanligtvis med vit text på en svart bakgrund.
Så tråkig!Det snygga fönstret går av de olika namnen, beroende på vilken typ av operativsystem du använder. I Windows är ett textfönster av detta slag ett kommandotolken. På en Macintosh och i Linux är detta fönster -terminalen. Vissa versioner av Linux och UNIX kallar detta fönster ett skal.
Hur som helst, tillbaka i antiken, kan du skriva ett program som suger upp extra information när du skrev kommandot för att starta programmet.
När du startar MakeRandomNumsFile skriver du lite extra information.I bilden ovan programmerar programmeraren java MakeRandomNumsFile för att köra programmet
MakeRandomNumsFile
. Men programmeraren följer java MakeRandomNumsFile med två extra bitar av information: MyNumberedFile. txt och 5 . När programmet
MakeRandomNumsFile
körs, suger programmet två extra bitar av information och använder dem för att göra vad programet ska göra. Programmet suger upp
MyNumberedFile. txt 5
, men vid ett annat tillfälle kan programmeraren skriva SomeStuff 28 eller BunchONumbers 2000 . Den extra informationen kan vara annorlunda varje gång du kör programmet.
Nästa fråga är, "Hur vet ett Java-program att det ska snabba upp extra information varje gång den körs? "Sedan du började arbeta med Java har du sett detta
Strings args []
företag i huvudet på varje
main
-metod. Tja, det är hög tid att du fick reda på vad det handlar om. Parametern
args []
är en rad
Sträng
-värden. Dessa
Sträng
-värden kallas kommandoradsargument.
statisk statisk tomt huvud (String ) []
args)
Hur som helst, args är en uppsättning av
Sträng
-värden.
Använda kommandoradsargument i ett Java-program
Denna bit kod visar hur du använder kommandoradsargument.
Så här skapar du en fil med nummer
import java. util. Slumpmässig;
importera java. io. Printstream;
importera java. io. IOException;
Public Class MakeRandomNumsFile {
Offentlig statisk tomt huvud (
String args []
) slänger IOException {
Slumpmässig generator = nytt slumpmässigt (); om (args.längd <2) { System. ut. println ("Användning: MakeRandomNumsFile filnamn nummer");
System. exit (1);
}
PrintStream printOut = ny PrintStream (args [0]);
int numLines = heltal. parseInt (args [1]);
för (int count = 1; count <= numLines; count ++) {
printOut. println (generator. nextInt (10) + 1);
}
utskrift. stänga();
}
}
Om ett visst program förväntar sig några kommandoradsargument kan du inte starta programmet på samma sätt som du skulle starta de flesta andra normala program. Hur du matar kommandoradsargument till ett program beror på den IDE du använder - Eclipse, NetBeans eller vad som helst. Allmycode. com har instruktioner för att mata argument till program med olika IDE.
När koden börjar köra, får metoden
args
sina värden. Med körningen som visas i bilden ovan tar arraykomponenten
args [0]
automatiskt värdet
"MyNumberedFile.txt"
och
args [1]
blir automatiskt
"5"
. Så slutar programmets uppgifter om uppdrag att ha följande betydelse:
PrintStream printOut = new PrintStream ("MyNumberedFile. Txt");
int numLines = heltal. parseInt ("5");
Programmet skapar en fil med namnet
MyNumberedFile. txt
och anger
numLines
till
5
. Så senare i koden genererar programmet slumpmässigt fem värden och sätter dessa värden i
MyNumberedFile. txt
. En köra av programmet ger dig detta.
När du kör koden, var hittar du den nya filen (
MyNumberedFile.txt
) på din hårddisk? Svaret beror på många olika saker. Om du använder en IDE med program uppdelade i projekt, så är den nya filen någonstans i projektets mapp. På något sätt kan du ändra Listning 11-7 för att ange ett fullständigt söknamn - ett namn som
"c: \ Användare \ MyName \ Documents \ MyNumberedFile.txt"
eller
"/ Användare / MyName / Documents / MyNumberedFile. Txt"
.
I Windows innehåller filvägsnamn backslash-tecken. Och i Java, när du vill ange en backslash inuti en dubbelvitat String bokstavlig, använder du en dubbel backslash istället. Det är därför "c: \ Användare \ MyName \ Documents \ MyNumberedFile. txt "innehåller par backslashes. Däremot innehåller filvägar i operativsystemen Linux och Macintosh framåt snedstreck. Om du vill ange ett snedstreck framåt i en Java-sträng, använd bara ett snedstreck framåt.
Lägg märke till hur varje kommandoradsargument är ett värde på
Sträng
. När du tittar på
args [1]
ser du inte numret 5 - du ser strängen
"5"
med ett siffertecken i det. Tyvärr kan du inte använda det
"5"
för att göra några räkningar. För att få ett värde
int
från
"5"
måste du använda metoden
parseInt
.
Metoden
parseInt
lever i en klass med namnet
Integer.
Så, för att ringa
parseInt, förordar du namnet parseInt
med ordet
Integer. Klassen Heltal har alla typer av praktiska metoder för att göra saker med int
värden.
I Java är integer namnet på en klass, och int är namnet på en primitiv (enkel) typ. De två sakerna är relaterade, men de är inte samma. Klassen
Integer
har metoder och andra verktyg för att hantera
int
-värden.
Kontrollerar rätt antal kommandoradsargument
Vad händer om användaren gör ett misstag? Vad händer om användaren glömmer att skriva siffran
5
på den första raden
w hönan du startar MakeRandomNumsFile ? Då tilldelas datorn
"MyNumberedFile.txt"
till
args [0]
, men den tilldelar inte något till
args [1]
. Det här är dåligt. Om datorn någonsin når uttalandet
int numLines = Integer. parseInt (args [1]);
programmet kraschar med en ovänlig
ArrayIndexOutOfBoundsException
.
Vad gör du om detta? Du kontrollerar längden på arrayen
args
. Du jämför
args. längd
med
2
. Om
args array
har färre än två komponenter, visar du ett meddelande på skärmen och avslutar programmet.
Koden berättar hur du kör den.
Trots kontrollen av
args. längd
NumberFormatException
. Det andra kommandoradsargumentet kan inte vara ett ord. Argumentet måste vara ett tal (och ett heltal, vid det). Du kan lägga till uttalanden för att göra koden mer kollisionsskyddad.
När du arbetar med kommandoradsargument kan du ange ett värde
String
med ett tomt utrymme i det. Lägg bara in värdet i dubbla citattecken. Till exempel kan du köra koden ovan med argument
"My Big Fat File. Txt" 7
.