Java višeredni niz
1. Pregled
S obzirom na činjenicu da u Javi još ne postoji izvorna klasa višerednih nizova, pomalo je nezgodno stvoriti i koristiti višeredne nizove.
U ovom uputstvu prolazimo kroz nekoliko metoda za napraviti i koristiti višeredne nizove u Javi.
2. Dobivanje separatora linija
Svaki operativni sustav može imati svoj način definiranja i prepoznavanja novih linija. U Javi je vrlo lako dobiti separator linija operativnog sustava:
String newLine = System.getProperty ("line.separator");
Iskoristit ćemo ovo nova linija u sljedećim odjeljcima za stvaranje višerednih nizova.
3. Spajanje nizova
Spajanje nizova je jednostavna izvorna metoda koja se može koristiti za stvaranje višerednih nizova:
javni String stringConcatenation () {return "Zaposli se za život" .concat (newLine) .concat ("ili") .concat (newLine) .concat ("zauzmi umiranje.") .concat (newLine) .concat ("- Stephen King "); }
Korištenje operatora + još je jedan način postizanja iste stvari. Java kompajleri prevode concat () i operator + na isti način:
javni String stringConcatenation () {return "Zaposli se za život" + newLine + "ili" + newLine + "zauzeti se umiranjem." + newLine + "--Stephen King"; }
4. String Join
Uvedena Java 8 String # join, koji kao argumente uzima graničnik uz neke nizove. Vraća završni niz koji ima sve ulazne nizove spojene zajedno s graničnikom:
javni String stringJoin () {return String.join (newLine, "Zaposli se za život", "ili", "zauzmi umiranje.", "--Stephen King"); }
5. String Graditelj
StringBuilder je pomoćna klasa za izgradnju Nizs. StringBuilder je uveden u Javi 1.5 kao zamjena za StringBuffer. Dobar je izbor za izgradnju ogromnih žica u petlji:
javni String stringBuilder () {return new StringBuilder () .append ("Zaposli se za život") .append (newLine) .append ("ili") .append (newLine) .append ("zauzmi umiranje.") .append ( newLine) .append ("- Stephen King") .toString (); }
6. String Writer
StringWriter je još jedna metoda koju možemo koristiti za stvaranje niza s više linija. Ne trebamo nova linija ovdje, jer koristimo PrintWriter. The println funkcija automatski dodaje nove retke:
javni String stringWriter () {StringWriter stringWriter = novi StringWriter (); PrintWriter printWriter = novi PrintWriter (stringWriter); printWriter.println ("Zaposli se živeći"); printWriter.println ("ili"); printWriter.println ("zauzeti se umiranjem."); printWriter.println ("- Stephen King"); vratiti stringWriter.toString (); }
7. Guava stolar
Korištenje vanjske knjižnice samo za jednostavan zadatak poput ovog nema puno smisla, međutim, ako projekt već koristi knjižnicu u druge svrhe, možemo je iskoristiti. Na primjer, Googleova knjižnica Guava vrlo je popularna. Guava ima Stolar klasa koja je sposobna graditi višeredne nizove:
public String guavaJoiner () {return Joiner.on (newLine) .join (ImmutableList.of ("Zaposli se živeći", "ili", "zauzeti se umiranjem.", "- Stephen King")); }
8. Učitavanje iz datoteke
Java čita datoteke točno onakve kakve jesu. To znači da ako u tekstualnoj datoteci imamo višeredni niz, imat ćemo isti niz kada čitamo datoteku. Na Javi postoji puno načina za čitanje iz datoteke.
Zapravo je dobra praksa razdvajati duge nizove od koda:
public String loadFromFile () baca IOException {return new String (Files.readAllBytes (Paths.get ("src / main / resources / stephenking.txt"))); }
9. Korištenje IDE značajki
Mnogi moderni IDE podržavaju kopiranje / lijepljenje u više redaka. Eclipse i IntelliJ IDEA primjeri su takvih IDE-a. Jednostavno možemo kopirati naš višeredni niz i zalijepiti unutar dva dvostruka navodnika u ove IDE-ove.
Očito je da ova metoda ne radi za stvaranje niza u vremenu izvođenja, ali je brz i jednostavan način za dobivanje niza s više linija.
10. Zaključak
U ovom uputstvu naučili smo nekoliko metoda za izgradnju višerednih nizova u Javi.
Dobra vijest je da će Java 13 imati matičnu podršku za višeredne nizove putem blokova teksta. Nepotrebno je reći da će sve gore navedene metode i dalje raditi u Javi 13.
Kôd za sve metode u ovom članku dostupan je na Githubu.