2012-04-30 31 views
13

Tôi đang cố gắng chia chuỗi tại không gian đầu tiên và chỉ giữ nửa thứ hai. Vì vậy, nếu đầu vào là "1. đầu của thép", đầu ra sẽ là "đầu thép". Tôi đang làm việc với một vài ví dụ khác nhau từ đây và tôi không thể làm cho nó hoạt động. Suy nghĩ? Cảm ơn.Tách chuỗi tại không gian đầu tiên

+3

'string secondHalf = myString.Split (new char [] {''}, 2) [1];' Sử dụng phương thức Tách với kích thước tối đa trên mảng. – BenVlodgi

Trả lời

27
var myString = "1. top of steel"; 
var newString = myString.Remove(0, myString.IndexOf(' ') + 1); 
1

Bạn chỉ có thể làm:

string myString = "1. top of steel"; //replace this with the input 
string resultString = myString.IndexOf(' ') > -1 
    ? myString.Substring(myString.IndexOf(' ') + 1) 
    : myString; 
+0

SplitString của bạn cần phải là một mảng và thậm chí sau đó điều này sẽ dẫn đến 'myNewString' là' top' vì nó sẽ phân chia trên mỗi không gian không chỉ là phần đầu tiên. – jzworkman

+0

Bạn cần một mảng để lưu trữ kết quả của Split. Ngoài ra, điều này sẽ không hoạt động chính xác khi đầu vào chứa nhiều hơn một dấu cách – Attila

+1

Mã này sẽ không hoạt động, mã này có quá nhiều lỗi. 1) splitString cần phải là một mảng. 2) Chức năng tách cần một mảng làm tham số. 3) Nếu 2 điểm đầu tiên bị bỏ qua ngay cả khi nó sẽ chỉ trả về phần tử ở chỉ mục thứ nhất và không phải phần còn lại của chuỗi. –

3

Chỉ cần sử dụng một cái gì đó như sau,

string[] stringTokens = originalString.Split(new char[] {' '}, 2, StringSplitOptions.RemoveEmptyEntries); 
if(stringTokens.Length >= 2) 
    newString = stringTokens[1]; 
15

này có thể dễ dàng thực hiện bằng Substring:

string myString = "1. top of steel"; 
string newString = myString.Substring(myString.IndexOf(' ') + 1); 

này sẽ cung cấp cho bạn một s mới tring bắt đầu sau không gian đầu tiên.

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