2017-11-08 3 views
0

フォロー列:文字列の中で分割数を行う方法(最初の位置)?

11 blabalba, balbalba balballbal baba 
12 balbal13, afafaf14 1414adad1414 12 12 

私はそれが(スプリットで区切って)このような何かを返したい:

array 0: 11 
array 1: blabalba, balbalba balballbal baba 

2行目:スプリットにする方法

array 0: 12 
array 1: balbal13, afafaf14 1414adad1414 12 12 

最初の位置?

+0

あなたの文字列が新しい行で発生していますか?新しい行で発生した場合は、おそらく '\ n'で分割することができます。 – kat1330

答えて

2
var input = "11 blabalba, balbalba balballbal baba"; 
var split = input.Split(new [] {' '}, 2); 

元の文字列をスペースで区切りますが、最大2文字の文字列を返します。したがって、最初のスペースを使用して分割するだけです。

堅牢

string.Split documentation

+1

あなたの例では、数字で始まり、スペースとそれに続くテキストが続く文字列があるように見えます。どのような最初の "単語"であろうと、スペースで分けられた最初のテキスト - それは最初の配列要素に入るものです。それがどこから来たのか、それともランダムであるのかは問題ではありません。文字列が "124 ABC 123"ならば、あなたは["124"、 "ABC 123"]になります。 –

+0

2番とは何ですか? 'input.Split(new [] {''}、2);' –

+1

2は、文字列を分割する要素の数を示します。私が2を省いた場合、スペースがあればどこでも「124 ABC 123」が分割され、3つの要素の配列が与えられます。 2は、2つの要素だけを返すように指示します。最初のスペースに文字列を分割し、最大2つの要素を与え、残りのスペースを無視します。 –

1
  var content = "11 blabalba, balbalba balballbal baba"; 

      var splitContent = content.Split(' '); 

      splitContent[1] = string.Join(" ", splitContent.Skip(1).Take(splitContent.Length - 1).ToArray()); 

      splitContent = splitContent.Take(2).ToArray(); 
1
var head = string.Join("", s.TakeWhile(x => char.IsDigit(x))); 
var rest = string.Join("", s.Skip(head.Length + 1)); 

return new [] { head, rest }; 

以上:

var regex = new Regex(@"^(?'head'\d+)\s(?'rest'.+)$"); 

var match = regex.Match(s); 

var head = match.Groups["head"].Value; 
var rest = match.Groups["rest"].Value; 

return new [] { head, rest}; 
関連する問題