Java8 StringJoiner的代码详解
终于,Java 8在java.util软件包下发布了StringJoiner类。我认为相对于我们使用StringBuffer / StringBuilder的旧式做法来连接字符串,这并非是一个迥然不同的实现。我们一起来看一看StringJoiner的用法和它的内部实现。
例如,我有两个字符串为“Smart”和“Techie”,我想连接这些字符串为[Smart,Techie]。在这种情况下,我的前缀为“[”,后缀为“]”,以及分隔符为“,”。 StringJoiner有如下两个构造函数。
StringJoiner(CharSequence delimiter)
StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
我们想要有前缀和后缀,因此在例子中使用第二个构造函数。
StringJoiner sjr = new StringJoiner(",", "[", "]"); sjr.add("Smart").add("Techie"); System.out.println("The final Joined string is " + sjr);
如果我们不希望有前缀和后缀,那么就:
sjr1.add("Smart").add("Techie"); System.out.println("The final Joined string is " + sjr1);
现在,我们将看到add和toString()方法的实现。
public StringJoiner add(CharSequence newElement) { prepareBuilder().append(newElement); return this; }
prepareBuilder()实现如下。
private StringBuilder prepareBuilder() { if (value != null) { value.append(delimiter); } else { value = new StringBuilder().append(prefix); } return value; }
从上面的实现中,可以很明显看到StringJoiner遵循老式的做法。
toString()实现如下。
public String toString() { if (value == null) { return emptyValue; } else { if (suffix.equals("")) { return value.toString(); } else { int initialLength = value.length(); String result = value.append(suffix).toString(); // reset value to pre-append initialLength value.setLength(initialLength); return result; } }
Atas ialah kandungan terperinci Java8 StringJoiner的代码详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Java8 mengira tarikh setahun yang lalu atau setahun kemudian menggunakan kaedah tolak() untuk mengira tarikh setahun yang lalu packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;publicclassDemo09{publicstaticvoidmain(String[ ]args ){LocalDatetoday=LocalDate.now();LocalDatepreviousYear=today.minus(1,ChronoUni

Cara mengira tarikh seminggu kemudian dalam Java8 Contoh ini akan mengira tarikh seminggu kemudian. Tarikh LocalDate tidak mengandungi maklumat masa kaedah tambah() digunakan untuk menambah hari, minggu dan bulan Kelas ChronoUnit mengisytiharkan unit masa ini. Memandangkan LocalDate juga merupakan jenis yang tidak boleh diubah, anda mesti menggunakan pembolehubah untuk menetapkan nilai selepas kembali. packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;publicclassDemo08{publicstaticvoidmain(String[

Kelas Jam Java8 Java8 menambah kelas Jam untuk mendapatkan cap waktu semasa, atau maklumat tarikh dan masa dalam zon waktu semasa. Apabila System.currentTimeInMillis() dan TimeZone.getDefault() digunakan sebelum ini, ia boleh digantikan dengan Jam. packagecom.shxt.demo02;importjava.time.Clock;publicclassDemo10{publicstaticvoidmain(String[]args){//Returnsthecurrenttimebase

Dapatkan cap masa semasa dalam Java8. Kelas Instant mempunyai kaedah kilang statik now() yang akan mengembalikan cap masa semasa, seperti yang ditunjukkan di bawah: packagecom.shxt.demo02;importjava.time.Instant;publicclassDemo16{publicstaticvoidmain(String[]args) {Instanttimestamp=Instant.now();System.out.println("Whatisvalueofthisinstant"+timestamp.t

Cara menggunakan alat pemformatan yang dipratentukan untuk menghuraikan atau memformat tarikh dalam Java 8 packagecom.shxt.demo02;importjava.time.LocalDate;importjava.time.format.DateTimeFormatter;publicclassDemo17{publicstaticvoidmain(String[]args){StringdayAfterTommorrow="201 ";80200 LocalDateformatted=LocalDate.parse

Tentukan sama ada dua tarikh adalah sama dalam Java8 packagecom.shxt.demo02;importjava.time.LocalDate;publicclassDemo04{publicstaticvoidmain(String[]args){LocalDatedate1=LocalDate.now();LocalDatedate2=LocalDate.of(2018,2,5) ;jika(tarikh1.sama(tarikh2)){System.out.println("Masa sama");}e

Java8中获取年、月、日信息packagecom.shxt.demo02;importjava.time.LocalDate;publicclassDemo02{publicstaticvoidmain(String[]args){LocalDatetoday=LocalDate.now();intthyear=artoday. .getMonthValue();intday=today.getDayOfMonth();System.out.println

在Java8中检查闰年packagecom.shxt.demo02;importjava.time.LocalDate;publicclassDemo14{publicstaticvoidmain(String[]args){LocalDatetoday=LocalDate.now();if(today.isLeapYelnsprint()){ "ThisyearisLeapyear");}lain{System.out.println("2
