Tách số 0 trong 1 chuỗi?

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!

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é :slight_smile:

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 :smiley:

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é :smiley:

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 @@

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?