Mình có 1 chuỗi String: 00, 01, 02…23 (giờ trong ngày). Giờ mình muốn bỏ số 0 phía trước để hiển thị: 0, 1, 2, 3,…, 23 thì phải làm như nào ạ?
Mình cảm ơn nhiều!
Tách số 0 trong 1 chuỗi?
1 Like
Mình không rõ java, nhưng về cơ bản gồm 4 bước:
Tách chuỗi --> Convert --> Format --> Ghép lại
Tham khảo đoạn script PowerShell:
$Chuỗi_Ban_Đầu = "00,01,02,03,10,11,23"
$Mảng_Tách_Chuỗi = $Chuỗi_Ban_Đầu -split ","
$Mảng_Mới = @()
$Mảng_Tách_Chuỗi | ForEach {$Mảng_Mới += ([int]$_).ToString("0")}
$Chuỗi_Kết_QUả = $Mảng_Mới -join ","
Write-Host $Chuỗi_Kết_QUả
# Kết quả trả về 0,1,2,3,10,11,23
Dùng void .ReplaceAll của String nhé
str = str.replaceAll(“0”, “”);
1 Like
Mình đọc mình không hiểu gì hết nhưng dù sao cũng cảm ơn bạn!
vậy thì số 10 nó về 1 sao bác
1 Like
Dùng regular expressions thay cho replace.
Có phải ý bạn là như thế này:
import java.util.Arrays;
public class ExeStrings {
public static void main(String[] args) {
String[] arrStr = {"00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13",
"14", "15", "16", "17", "18", "19", "20", "21", "22", "23"};
System.out.println(Arrays.toString(arrStr));
for (int i = 0; i < arrStr.length; ++i) {
if(arrStr[i].startsWith("0")){
arrStr[i] = arrStr[i].substring(1);
}
}
System.out.println("------------------------------------------------------------------------------------------------");
System.out.println(Arrays.toString(arrStr));
}
}
Result:
Thế sao không dùng replace() nhanh hơn replaceAll nha !
Mà bạn làm như thế thì “00” -> “” à ???
Cảm ơn bạn nhiều nhé
String result = Arrays.stream(StringUtils.split("00,01,10,11", ","))
.map(numb -> numb.startsWith("0") ? numb.substring(1) : numb).collect(Collectors.joining(","));
Java 8
Sr, tưởng bạn muốn bỏ hết số 0 đi @@