2009-06-16 28 views
6

Ví dụ: a - b - c phải được phân chia như a và b - c, thay vì 3 chuỗi conLàm thế nào tôi có thể chia chuỗi chỉ một lần sử dụng C#

+0

tuyệt vời của nó 1000 câu hỏi được gắn thẻ "lập trình" Tôi chỉ phải đi tìm hiểu có bao nhiêu quesitons là được gắn thẻ "câu hỏi" và có một số !! @ Jon: FYI, SO luôn luôn là về lập trình, câu hỏi không lập trình sẽ rất nhanh chóng có được bình chọn đóng cửa. – AnthonyWJones

+0

... nhưng chỉ có 15 câu hỏi được gắn thẻ "câu hỏi";) – Guffa

+0

Get'em tag-nazi! :) –

Trả lời

17

Xác định số lượng tối đa của mục mà bạn muốn:

string[] splitted = text.Split(new string[]{" - "}, 2, StringSplitOptions.None); 
+1

Không có quá tải như vậy. –

+3

Có, có .. – Guffa

+0

Xin lỗi, tôi phải hiểu sai điều gì đó. –

12
string s = "a - b - c"; 
string[] parts = s.Split(new char[] { '-' }, 2); 
// note, you'll still need to trim off any whitespace 
2

Bạn có thể sử dụng indexOf() để tìm trường hợp đầu tiên của ký tự bạn muốn chia nhỏ, sau đó là chuỗi con() để nhận hai khía cạnh. Ví dụ:

int pos = myString.IndexOf('-'); 
string first = myString.Substring(0, pos); 
string second = myString.Substring(pos); 

Đây là ví dụ khó - bạn sẽ cần phải chơi với nó nếu bạn không muốn ký tự phân cách trong đó - nhưng bạn nên lấy ý tưởng từ đó.

1
string[] splitted = "a - b - c".Split(new char[]{' ', '-'}, 2, StringSplitOptions.RemoveEmptyEntries); 
0
var str = "a-b-c"; 
int splitPos = str.IndexOf('-'); 
string[] split = { str.Remove(splitPos), str.Substring(splitPos + 1) }; 
-1

Tôi đã tham gia muộn và nhiều câu trả lời ở trên được kết hợp với những lời sau đây của tôi:

chuỗi có riêng của mình

Chia

Bạn có thể dùng cùng để tìm các giải pháp của vấn đề của bạn, sau đây là ví dụ như mỗi vấn đề của bạn:

using System; 

public class Program 
{ 
    public static void Main() 
    { 
     var PrimaryString = "a - b - c"; 
     var strPrimary = PrimaryString.Split(new char[] { '-' }, 2); 
     Console.WriteLine("First:{0}, Second:{1}",strPrimary[0],strPrimary[1]); 

    } 
} 

Output: 
First:a , Second: b - c 
+0

Điều này sẽ cho bạn một mảng với '[a, b, c]' và không phải là '[a, b-c]'. Cộng với ngôn ngữ sai. –

+0

Cảm ơn @JamieR đã trích dẫn nó. Tôi đã sửa lại câu trả lời của mình. –

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