Typiska program arbetar med data som måste anges och visas av användaren. I den här handledningen utforskar vi hur du kan bearbeta inmatningar från användaren och skapa utmatningar effektivt i Java. Det finns olika sätt att samla in eller tillhandahålla information. Här spelar skillnaden mellan utmatningar på konsolen och felutmatningar en viktig roll. Du lär dig också hur du effektivt kan läsa in data, oavsett om det är via konsolen eller grafiska användargränssnitt.
Viktigaste insikter
- Java erbjuder flera sätt att hantera datainmatning och -utmatning.
- Det är viktigt att separera utmatningar och fel från varandra.
- Scanner är ett användbart verktyg för att läsa in användarinmatningar.
Grundläggande utmatning med System.out
Det första steget vid arbete med utmatningar i Java är att hantera System.out, vilket är standardutmatningen. Med klassen PrintStream, som representerar System.out, kan du skicka utmatningar till konsolen.
För att producera en textutmatning kan du enkelt använda System.out.print eller System.out.println. println avslutar raden efter utmatningen, medan print inte gör det. Om du vill att nästa utmatning ska ske på samma rad, använder du print.

Du kan köra programmet enligt följande:
Denna utmatning visas på konsolen och du kan anpassa programmet för att ge ytterligare information.
Felutmatningar med System.err
För felutmatningar är det rekommenderat att använda System.err. Detta har den fördelen att fel och vanliga utmatningar tydligt separeras. Fel kan därmed visuellt framhävas, till exempel genom att använda en annan färg på konsolen (ofta röd).
När ett fel uppstår kan du använda System.err.print eller System.err.println för att skriva ut ett specifikt fel:

Här är ett exempel på ett felmeddelande:
Genom att separera vanliga utmatningar och felmeddelanden kan du öka läsbarheten och tydligheten i utmatningarna i ditt program.
Inmatningar med System.in och Scanner
För att få inmatningar från användaren använder vi System.in. Här är det fördelaktigt att använda Scanner-klassen från paketen java.util. Scanner förenklar inläsningen av data genom att den automatiskt känner igen olika datatyper och returnerar inmatningen som en sträng.
Först måste du importera Scanner:

Därefter kan du skapa en instans av Scanner och lämna över System.in:
Nu har du möjlighet att läsa inmatningar i ditt program.
Fånga användarinmatningar
För att hämta data från en användare kan du använda nextLine(). Detta möjliggör fångst av en fullständig rad som sträng. Ett typiskt exempel skulle vara att be om användarens ålder.
Här är ett exempel på användarinmatning:

I det här exemplet uppmanas användaren att ange sin ålder och programmet returnerar sedan den angivna informationen.
Användarinteraktioner med grafiska dialoger
Om du vill använda ett grafiskt användargränssnitt (GUI) kan du använda klassen JOptionPane från javax.swing-paketet. Detta gör att du kan fånga inmatningar i ett standard dialogfönster, vilket kan vara lite mer användarvänligt.

Detta visar en grafisk dialog där användaren kan ange sin ålder.
Validering av användarinmatningar
Det är viktigt att validera inmatningar som kommer från användaren. Du bör säkerställa att åldern faktiskt är i ett acceptabelt format, till exempel som ett heltal. För detta kan du försöka konvertera strängen till ett nummer och arbeta med undantag.

Genom att implementera dessa valideringar skyddar du ditt program från oväntade inmatningar.
Sammanfattning – Optimera inmatning och utmatning i Java
Du har nu lärt dig de grundläggande koncepten för inmatning och utmatning i Java. Skillnaden mellan standardutmatningar och felmeddelanden är grundläggande för att skapa tydlighet i programkommunikationen. Dessutom erbjuder användningen av Scanner och möjligheten att implementera grafiska dialoger flexibla lösningar för datainmatning.
Vanligt ställda frågor
Vilken klass använder jag för standardutmatning?Du använder System.out för att visa utmatningar i konsolfönstret.
Hur kan jag skriva ut felmeddelanden?Använd System.err för att skriva ut felmeddelanden för att separera dem från vanliga utmatningar.
Hur fångar jag användarinmatningar i konsolen?Scanner från java.util är idealisk för att fånga användarinmatningar från System.in.
Kan jag använda grafiska inmatningsdialoger?Ja, med JOptionPane från javax.swing kan du använda grafiska dialoger för inmatning.
Måste jag validera användarinmatningar?Ja, validering av inmatningar är viktigt för att undvika fel och oväntade inmatningar.