Left Padding a String with Zero in Java
Pertanyaan serupa telah dibincangkan pada masa lalu, tetapi masih terdapat beberapa kesamaran mengenai teknik untuk meninggalkan padding rentetan dengan sifar. Secara khusus, mari kita sasarkan untuk mencapai transformasi berikut:
Input: "129018"
Output: "0000129018"
Output akhir hendaklah mengandungi tepat sepuluh aksara.
Numerik Rentetan
Untuk rentetan yang mengandungi hanya aksara angka, pendekatan mudah ialah menukar rentetan kepada integer dan kemudian gunakan kaedah String.format untuk menggunakan padding kiri:
String input = "129018"; int number = Integer.parseInt(input); String padded = String.format("%010d", number);
Rentetan Bukan Berangka
Untuk rentetan bukan angka, pendekatan alternatif ialah diperlukan:
Penggabungan Rentetan
Anda boleh menggabungkan bilangan sifar yang diperlukan ke permulaan rentetan:
String input = "abc"; StringBuilder padded = new StringBuilder(); int paddingLength = 10 - input.length(); for (int i = 0; i < paddingLength; i++) { padded.append('0'); } padded.append(input);
Subrentetan Penggantian
Anda boleh menggantikan subrentetan panjang yang sesuai pada permulaan rentetan dengan sifar:
String input = "abc"; String padded = String.format("%10s", input).replaceFirst(" ", "0");
Transformasi StringBuilder
Anda boleh mencipta StringBuilder daripada rentetan sedia ada dan memasukkan sifar pada permulaan:
String input = "abc"; StringBuilder padded = new StringBuilder(input); for (int i = 0; i < 10 - input.length(); i++) { padded.insert(0, '0'); }
Atas ialah kandungan terperinci Bagaimana untuk Left-Pad String dengan Sifar di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!