我是.net網絡形式的新手,所以任何人都可以幫助我。如何查找字符串中第五個空格的位置?
如何找到asp.net中字符串中第五個空格的位置?
我已經
string s="aa bb cc dd ee ff gg hh ii kk"
所以我想讓子,直到第五個空格所以新的字符串應該是:
"aa bb cc dd ee"
我是.net網絡形式的新手,所以任何人都可以幫助我。如何查找字符串中第五個空格的位置?
如何找到asp.net中字符串中第五個空格的位置?
我已經
string s="aa bb cc dd ee ff gg hh ii kk"
所以我想讓子,直到第五個空格所以新的字符串應該是:
"aa bb cc dd ee"
爲了讓子"aa bb cc dd ee"
:
String.Join(" ", "aa bb cc dd ee ff gg hh ii kk".Split(' ').Take(5))
,並找到第五空間的位置,你問原來:
"aa bb cc dd ee ff gg hh ii kk".Split(' ').Take(5).Sum(a => a.Length + 1) - 1
說明:
.Split(' ')
- 在空間分割你的字符串,所以我們現在有一個包含string[]
:aa, bb, cc, dd, ee, ff, gg, hh, ii, kk
.Take(5)
- 採取數組的第一個五行的IEnumerable<string>
:aa, bb, cc, dd, ee
.Sum(a => a.Length + 1)
- 增加個人的所有長度一起元素(在這種情況下,所有2
並添加一個失蹤的空間由於分割- 1
刪除多餘的計數的空間替代會得到.Length
以上的子串。
你可以分割字符串,只取前5串,然後加入它回來,像這樣:
string s = "aa bb cc dd ee ff gg hh ii kk";
string output = String.Join(" ", s.Split(new[] { ' ' }, 6).Take(5));
Console.WriteLine(output); // "aa bb cc dd ee"
或者對於更直接的方法,只需使用IndexOf
,直到你找到的空格數你想:
string s = "aa bb cc dd ee ff gg hh ii kk";
var index = -1;
for (int i = 0; i < 5; i++)
{
index = s.IndexOf(" ", index + 1);
}
string output = s.Remove(index);
Console.WriteLine(output); // "aa bb cc dd ee"
真的非常感謝。我爲我的兩個問題得到了答案,再次感謝。歡呼! - – Kohok
一個LINQ版本:
var fifthBlankIndex = s.Select((c, index) => new{ c, index })
.Where(x => Char.IsWhiteSpace(x.c))
.ElementAtOrDefault(4);
int result = -1;
if(fifthBlankIndex != null)
result = fifthBlankIndex.index; // 14
編輯如果你只是想採取的第一個五個字,這是一個完全不同的要求:
string fiveWords = string.Join(" ", s.Split().Take(5));
你可以使用s tring.split('')返回字符串數組。
string s = "aa bb cc dd ee ff gg hh ii kk";
//
// Split string on spaces.
// ... This will separate all the words.
//
string[] words = s.Split(' ');
foreach (string word in words)
{
Console.WriteLine(word);
}
所以一旦你得到數組,你可以連接儘可能多的單詞你想要的。所以在你的情況循環直到字數組中的第4個索引,並連接插入之間的空白。
使用Substring
:
string Requiredpart= s.Substring(0, s.IndexOf(' ', theString.IndexOf(' ') + 4));
您可以使用String.Split
方法等;
string s = "aa bb cc dd ee ff gg hh ii kk";
var array = s.Split(new string[] {" "}, StringSplitOptions.RemoveEmptyEntries);
string newstring = "";
for (int i = 0; i < 5; i++)
newstring += array[i] + " ";
Console.WriteLine(newstring.Trim());
輸出將;
aa bb cc dd ee
這裏一個Demonstration
。
你可以使用空格字符分割
string [] words = s.Split('');
然後根據你的喜好編寫單詞。
我希望你覺得這個很有用。 尼古拉
或者......
var nrOfBlanks = 0;
var firstFive = new String(s.TakeWhile(c =>
(nrOfBlanks += (c == ' ' ? 1 : 0)) < 5)
.ToArray());
...只是因爲使用稍微過於複雜的LINQ表達式字符串操作感覺非常有趣和性感。
+1的低效率,但確實非常有趣和性感的解決方案 –
一個小的調整 - 你可以使用'.Split()' - 它默認情況下被空白分割 –
@lazyberezovsky公平 - 我喜歡明確地顯示我在分裂的東西 - 留下更少的想象力:) –
真的很謝天謝地了。我爲我的兩個問題得到了答案,再次感謝。歡呼! – Kohok