Java >> Java tutorial >  >> Tag >> String

Tilføjelse af en ny linje til en streng i Java

Generering af tekstbaseret output og strengformatering er en almindelig praksis for programmører og softwareudviklere. I næsten alle situationer, mens de opretter en streng som output, skal programmører normalt placere sætningerne i flere linjer. Uden korrekt formatering i programmets output vil kodens læsbarhed falde. Derfor vil denne vejledning fremhæve alle de forskellige måder at skabe nye linjer på i Java.

Hvad er en Newline-karakter?

Et Newline-tegn er en bestemt type bogstaver eller en escape-sekvens i et Java-program, der repræsenterer slutningen af ​​en linje og begyndelsen af ​​en linje. I programmeringssprog som C, C++, Java osv. ., programmører bruger '\n' til at lave en ny linje i strengformateringen. Nogle gange kan dette nye linjetegn bogstaveligt kaldes linjeskift, linjeskift, linjeseparator eller EOL (End of Line).

Dette strengformateringskontroltegn fortæller Java-kompileren, hvor teksten vil flytte til en ny linje, eller hvornår det næste tegn skal starte i den nye linje. I Windows-programmeringsmiljøet skal programmører bruge CRLF (Carriage Return Line Feed) , som er kombinationen af ​​'\r\n' både Carriage Return og Linjefeed . I Linux-programmeringsmiljøet , skal programmører bruge '\n' - som er line feed eller newline escape sekvens.

Hvad er forskellene mellem '\n' og '\r'?

I Java er der programmeringssituationer, hvor begge disse bogstaver viser det samme resultat. Men der er nogle tydelige forskelle mellem begge disse.

  • Programmører bruger \n til at flytte markørens position til begyndelsen af ​​en ny linje. På den anden side tager \r markørens plads til begyndelsen af ​​den samme linje.
  • \n er linjefeedet (LF) hvorimod \r kaldes carriage return (CR)
  • ASCII tegnkode for \n er 10, hvorimod tegnkoden for \r er 13
  • I et Windows-system afslutter programmører linjerne i tekstfiler ved hjælp af CR efterfulgt af LF i kombination (f.eks. CRLF, dvs. '\r\n') . I et Unix-system gør programmører det samme ved at bruge line feed (LF) kun.

Derfor skal Java-programmører være opmærksomme på de linjeskifttegn, de bruger, fordi applikationer kan opføre sig anderledes baseret på det operativsystem, de opererer på. Derfor introducerer Java den sikreste og mest krydskompatible mulighed - System.lineSeparator() , som vi vil diskutere i det efterfølgende afsnit.

Tilføjelse af Newline-tegn i en streng

Det er ikke så svært at oprette et nylinjekarakter i Java. Men der er forskellige måder, hvorpå vi kan bruge nye linjetegn til strengformatering.

1) Brug af System.lineSeparator()

Java har en indbygget linjeseparator lineSeparator() det er en metode i klassen System. Da newline separatoren varierer fra platform til platform, er det normalt nødvendigt at have en platformsafhængig måde at bruge den på. Da den nye linjeseparator er et almindeligt element i strengformatering, kom Java 7 med en genvejsmetode, der returnerer det samme resultat som \n gør. Her er et kodestykke, der viser brugen –

import java.lang.System.*;
class Main
{
    public static void main(String[] args) {
        String newlineusinglinesep = System.lineSeparator();
        System.out.println("Hey" + newlineusinglinesep + "Karlos");
    }
}

2) Brug af CRLF Line-Breaks

Programmører kan kombinere \r (CR) og \n (LF) sammen (kaldet CRLF - Carriage Return Line Feed) for at skabe en ny linje i en streng. Bemærk, at denne teknik er OS- og platformsafhængig, dvs. den vil kun fungere korrekt på Windows-systemer.

import java.lang.System.*;
class Main
{
    public static void main(String[] args) {
        System.out.println("Hey" + "\r\n" + "Karlos");
    }
}

3) Brug af platformsafhængige linjeseparatorer (\n)

Den mest almindeligt anvendte mekanisme til at oprette et linjeskifttegn er at bruge '\n' (Linjefeed) specialtegn bogstaveligt. Vi kalder det en platformsafhængig newline separator, fordi kun '\n' virker på Unix programmeringsmiljø og '\r\n' er begge kombineret for at gøre det funktionelt i Windows-baserede systemer.

import java.lang.System.*;
class Main
{
    public static void main(String[] args) {
        System.out.println("Hey" + "\n" + "Karlos");
    }
}

4) Oprettelse af Newline ved hjælp af getProperty()-metoden

En anden standard og anbefalet metode til at bruge newline i Java er at bruge getproperty metoden og sender line.separator som en strengparameter. Bemærk, at denne metode returnerer en systemafhængig linjeseparator, fordi dens værdi afhænger af det underliggende operativsystem.

import java.lang.System.*;
class Main
{
    public static void main(String[] args) {
        String newlineusingGetProp = System.getProperty("line.separator");
        System.out.println("Hey" + newlineusingGetProp + "Karlos");
    }
}

5) Oprettelse af ny linje ved hjælp af %n

Dette er en anden plausibel måde at skabe en platformsuafhængig linjeseparator '%n' i Javas printf() metode.

import java.lang.System.*;
class Main
{
    public static void main(String[] args) {
        System.out.printf("Hey %n Karlos");
    }
}

7) Oprettelse af Newline ved hjælp af System.out.println() metoden:

Generelt, hvis en programmør ønsker at have en ny linje efter strengen i slutningen af ​​hver sætning, kan han eller hun bruge Javas System.out.println() metode. Denne metode sætter automatisk et nyt linjetegn i slutningen af ​​hver streng, der sendes i den.

import java.lang.System.*;
class Main
{
    public static void main(String[] args) {
        System.out.println("Hey");
        System.out.println("karlos");
    }
}

Java-program til at udskrive et Newline-tegn

Her er en programforklaring, der viser brugen af ​​forskellige newline separatorer i Java.

import java.lang.System.*;
class Main
{
    public static void main(String[] args) {
        System.out.print("Hey" + "\n" + "Karlos" + "\n");
        System.out.println("Hey");
        System.out.println("karlos");
        String newlineusinglinesep = System.lineSeparator();
        System.out.println("Hey" + newlineusinglinesep + "Karlos");
    }
}

I dette program har vi oprettet en hovedklasse, og inden for den har vi oprettet main() hvor vi har brugt strengene "Hey" + "\n" + "Karlos" + "\n" adskilt af \n . På de næste to linjer har vi oprettet to out.println() udsagn, som automatisk vil bruge det nye linjetegn efter slutningen (her "Hey" &"Karlos").

På næste linje Streng newlineusinglinesep =System.lineSeparator(); vil oprette en streng-baseret variabel, der vil tildele lineSeparator() funktionalitet i den. Derefter har vi brugt det i strengen som en separator.

Vi opretter dette ved at tildele det i en statisk variabel i stedet for at hente det fra systemet, hver gang vi har brug for det.

Konklusion

Endelig kan vi sige, at lineSeparator() metode er den bedste måde blandt alle disse, hvis du vil indsætte en linjeseparator hvor som helst i strengen. Dette skyldes, at lineSeparator() er uafhængig af platformen eller operativsystemmiljøet, hvilket gør det fleksibelt.

Enhver anden metode er afhængig af noget. System.out.println() i s afhængig, fordi den tilføjer en ny linje i slutningen af ​​strengen. %n Strengformat kræver printf() metode til at gøre det funktionelt. Den getProperty() metode har brug for den parameter, der gør det komplekst. CRLF og '\n' er afhængige af platforme. Således System.lineSeparator() i Java er den mest effektive.


Java tag