2008-09-16 42 views
10

Tôi có một chuỗi giống như dưới đây.Làm cách nào để Cắt dấu phẩy đầu tiên trong chuỗi của tôi

,liger, unicorn, snipe 

bằng các ngôn ngữ khác Tôi quen thuộc với tôi chỉ có thể làm một chuỗi.trim (",") nhưng làm cách nào tôi có thể làm điều đó trong C#?

Cảm ơn.


Đã có rất nhiều thứ qua lại về hàm StartTrim. Như một số đã chỉ ra, StartTrim không ảnh hưởng đến biến chính. Tuy nhiên, do việc xây dựng dữ liệu so với câu hỏi, tôi bị rách như câu trả lời để chấp nhận. Đúng câu hỏi chỉ muốn ký tự đầu tiên được cắt bớt không phải là ký tự cuối cùng (nếu anny), tuy nhiên, sẽ không bao giờ có dấu "," ở cuối dữ liệu. Vì vậy, với điều đó đã nói, tôi sẽ chấp nhận câu trả lời đầu tiên cho rằng sử dụng StartTrim được gán cho một biến mới.

+0

Đề xuất thêm thẻ ".net", vì đây không phải là ngôn ngữ cụ thể. –

+0

85 lượt xem 10 câu trả lời và KHÔNG ONE nghĩ câu hỏi này đáng giá +1? – Keng

+0

@Keng có lẽ bởi vì loại chất liệu này là loại tầm thường cho C# folks – chakrit

Trả lời

11
string sample = ",liger, unicorn, snipe"; 
sample = sample.TrimStart(','); // to remove just the first comma 

Hoặc có thể:

sample = sample.Trim().TrimStart(','); // to remove any whitespace and then the first comma 
+0

Câu trả lời hay, tôi cũng thêm vào trong TrimEnd cũng như sample.Trim(). TrimStart (', '). TrimEnd (', '); –

0
if (s.StartsWith(",")) { 
    s = s.Substring(1, s.Length - 1); 
} 
21
string s = ",liger, unicorn, snipe"; 
s.TrimStart(','); 
+0

Phương thức đó _modifies_ chuỗi? Không nên gán lại cho s ala s = s.TrimStrat ('/'); ? – chakrit

+0

không chắc chắn, nhưng không phải trình tự của nó đối với câu hỏi. – DevelopingChris

+0

Không, chuỗi là bất biến. Tất cả các hàm thao tác trả về một chuỗi mới với các thay đổi được áp dụng. –

0
string t = ",liger, unicorn, snipe".TrimStart(new char[] {','}); 
0
string s = ",liger, tiger"; 

    if (s.Substring(0, 1) == ",") 
     s = s.Substring(1); 
+0

chỉ fyi, bạn có thể làm s.StartsWith (, và không phải thực sự làm tất cả chuỗi con chỉ để lấy ký tự đầu tiên. – DevelopingChris

+0

Cảm ơn ChanChan. Tôi thường quay trở lại trên một tập con nhỏ của .Net mà tôi "mong đợi" Ở đó, dựa trên kinh nghiệm trước đó của tôi với các ngôn ngữ khác –

0

Ý của bạn là cắt tất cả các trường hợp "" trong chuỗi đó?

Trong trường hợp đó, bạn có thể làm:

s = s.Replace(",", ""); 
+0

Anh ta chỉ muốn xóa dấu phẩy đầu tiên –

1

"Liger, kỳ lân, snipe" .Trim ('') -> "Liger, UNICOR, snipe"

+0

Câu hỏi yêu cầu xóa 'dấu phẩy hàng đầu', nhưng Cắt() "Xóa tất cả các lần xuất hiện đầu và cuối của một tập hợp các ký tự được chỉ định từ đối tượng String hiện tại. "http://msdn.microsoft.com/en-us/library/system.string.trim.aspx – Andrew

1

chuỗi Hãy thử. Cắt (',') và xem nếu điều đó làm những gì bạn muốn.

+0

Câu hỏi yêu cầu xóa 'dấu phẩy hàng đầu', nhưng Cắt() "Xóa tất cả các lần xuất hiện đầu và cuối của một tập hợp các ký tự được chỉ định từ đối tượng Chuỗi hiện tại. " http://msdn.microsoft.com/en-us/library/system.string.trim.aspx – Andrew

0

Chỉ cần sử dụng Chuỗi con để bỏ qua ký tự đầu tiên (hoặc gán nó cho một chuỗi khác);

string o = ",liger, unicorn, snipe"; 
string s = o.Substring(1); 
4

.net strings có thể thực hiện Trim() và TrimStart().Bởi vì phải mất params, bạn có thể viết:

",liger, unicorn, snipe".TrimStart(',') 

và nếu bạn có nhiều hơn một ký tự để cắt, bạn có thể viết:

",liger, unicorn, snipe".TrimStart(",; ".ToCharArray()) 
+0

wow .. chuỗi đó đến mảng char là một mẹo hay mà tôi chưa bao giờ thấy trước đây. – chakrit

+0

hoặc 'mới [] {', ','; ',' '} ' –

1

Lưu ý, các gốc chuỗi được giữ nguyên, Trim sẽ đưa bạn trở về một chuỗi mới:

string s1 = ",abc,d"; 
string s2 = s1.TrimStart(",".ToCharArray()); 
Console.WriteLine("s1 = {0}", s1); 
Console.WriteLine("s2 = {0}", s2); 

in:

s1 = ,abc,d 
s2 = abc,d 
3

đây là một cách dễ dàng để không tạo ra dấu phẩy hàng đầu để bắt đầu với:

string[] animals = { "liger", "unicorn", "snipe" }; 
string joined = string.Join(", ", animals); 
1
string s = ",liger, unicorn, snipe"; 
s = s.TrimStart(','); 

Điều quan trọng là gán kết quả của TrimStart cho một biến. Như nó nói trên TrimStart page, "Phương pháp này không sửa đổi giá trị của cá thể hiện tại. Thay vào đó, nó trả về một chuỗi mới ...".

Trong .NET, các chuỗi không thay đổi.

1

bạn có thể sử dụng

, Liger, kỳ lân, snipe" .TrimStart (' ');

2

string.TrimStart (',') sẽ loại bỏ các dấu phẩy, tuy nhiên bạn sẽ gặp khó khăn với . một hoạt động chia rẽ do không gian sau dấu phẩy tốt nhất để tham gia chỉ trên dấu phẩy đơn hoặc sử dụng

split ("" .ToCharArray(), StringSplitOptions.RemoveEmptyEntries);

Các vấn đề liên quan