Thứ Ba, 8 tháng 3, 2011

Cắt các ký tự số 0 bên trái của chuỗi bằng C#



Hôm trước mình yêu cầu một bạn sinh viên mới ra trường cắt các ký từ số 0 bên trái của một chuỗi số nhưng bạn ấy làm không được. Có rất nhiều cách để làm, ở đây mình trình bày 5 cách làm, mọi người từ đánh giá hay dở


Code:


class Program

{
static void Main(string[] args)
{
CatChuoi.Test("0000");
CatChuoi.Test("0001023");
Console.Read();
}
}

class CatChuoi

{
public static void Test(string input)
{
if (input == null || input.Length == 0)
return;
input = input.Trim();

Console.WriteLine("===============\nInput: " + input);

Console.WriteLine("Cach1: " + Cach1(input));
Console.WriteLine("Cach2: " + Cach2(input));
Console.WriteLine("Cach3: " + Cach3(input));
Console.WriteLine("Cach4: " + Cach4(input));
Console.WriteLine("Cach5: " + Cach4(input));

}


// Kiểm tra bằng phương thức StartsWith
public static string Cach1(string input)
{

while (input.Length > 1 && input.StartsWith("0"))

input = input.Substring(1);
return input;
}

// Kiểm tra = 0 thì gán khoảng trắng

//So sánh ký tự
public static string Cach2(string input)
{
char[] s = input.ToCharArray();
for (int i = 0; i < input.Length - 1; i++)
{
if (input[i] != '0')
break;
s[i] = ' ';
}
return (new string(s)).Trim();
}

// Kiểm tra = 0 thì gán khoảng trắng

//So sánh mã ASCII
public static string Cach3(string input)
{

char[] s = input.ToCharArray();


for (int i = 0; i < input.Length - 1; i++)

{
if (input[i] != 48) //Khác cách 2 ở đây
break;

s[i] = ' ';

}

return (new string(s)).Trim();

}


//Tìm index không phải là không

public static string Cach4(string input)
{
for (int i = 0; i < input.Length; i++)
if (input[i] != '0')
return input.Substring(i);
return "0";
}


// Sử dụng foreach

public static string Cach5(string input)
{
string s = "";
foreach (char c in input)
{
if (c == '0' && s == "")
continue;
s += c;
}
return s;
}
}

Không có nhận xét nào:

Đăng nhận xét