Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何找到字符串中第五个空格的位置?_C#_String - Fatal编程技术网

C# 如何找到字符串中第五个空格的位置?

C# 如何找到字符串中第五个空格的位置?,c#,string,C#,String,我不熟悉.NETWeb表单,所以任何人都可以在这方面帮助我 如何查找asp.net字符串中第五个空格的位置 我有 string s="aa bb cc dd ee ff gg hh ii kk" 所以我想将子字符串设置为第五个空格,这样新字符串应该是: "aa bb cc dd ee" 您可以拆分字符串,只取前5个子字符串,然后将其重新连接在一起,如下所示: string s = "aa bb cc dd ee ff gg hh ii kk"; string output = String.

我不熟悉.NETWeb表单,所以任何人都可以在这方面帮助我

如何查找asp.net字符串中第五个空格的位置

我有

string s="aa bb cc dd ee ff gg hh ii kk"
所以我想将子字符串设置为第五个空格,这样新字符串应该是:

"aa bb cc dd ee"

您可以拆分字符串,只取前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"
string s=“aa bb cc dd ee ff gg hh ii kk”;
var指数=-1;
对于(int i=0;i<5;i++)
{
索引=s.IndexOf(“,索引+1);
}
字符串输出=s.Remove(索引);
Console.WriteLine(输出);//“aa bb cc dd ee”

您可以拆分字符串,只取前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"
string s=“aa bb cc dd ee ff gg hh ii kk”;
var指数=-1;
对于(int i=0;i<5;i++)
{
索引=s.IndexOf(“,索引+1);
}
字符串输出=s.Remove(索引);
Console.WriteLine(输出);//“aa bb cc dd ee”

获取子字符串
“aa bb cc dd ee”

找到第五个空间的位置,就像你最初问的:

"aa bb cc dd ee ff gg hh ii kk".Split(' ').Take(5).Sum(a => a.Length + 1) - 1
说明:

  • .Split(“”)
    -在空格上拆分字符串,因此我们现在有一个
    字符串[]
    包含:
    aa、bb、cc、dd、ee、ff、gg、hh、ii、kk
  • .Take(5)
    -在
    IEnumerable
    中取该数组的前五个元素:
    aa、bb、cc、dd、ee
  • .Sum(a=>a.Length+1)
    -将各个元素的所有长度相加(在本例中,所有
    2
    ,并为由于拆分而丢失的空间添加一个)
  • -1
    删除空间的额外计数

另一种方法是获取上述子字符串的
.Length

获取子字符串
“aa bb cc dd ee”

找到第五个空间的位置,就像你最初问的:

"aa bb cc dd ee ff gg hh ii kk".Split(' ').Take(5).Sum(a => a.Length + 1) - 1
说明:

  • .Split(“”)
    -在空格上拆分字符串,因此我们现在有一个
    字符串[]
    包含:
    aa、bb、cc、dd、ee、ff、gg、hh、ii、kk
  • .Take(5)
    -在
    IEnumerable
    中取该数组的前五个元素:
    aa、bb、cc、dd、ee
  • .Sum(a=>a.Length+1)
    -将各个元素的所有长度相加(在本例中,所有
    2
    ,并为由于拆分而丢失的空间添加一个)
  • -1
    删除空间的额外计数
另一种方法是获取上面子字符串的
.Length

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));
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));
您可以使用string.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);
}
因此,一旦获得数组,就可以连接任意数量的单词。因此,在case循环中,直到单词数组中的第四个索引,并在其间插入空格。可以使用string.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);
}

因此,一旦获得数组,就可以连接任意数量的单词。因此,在case循环中,直到单词数组中的第四个索引,并在其间插入空格。

使用
Substring

string Requiredpart= s.Substring(0, s.IndexOf(' ', theString.IndexOf(' ') + 4));

使用
子字符串

string Requiredpart= s.Substring(0, s.IndexOf(' ', theString.IndexOf(' ') + 4));
你可以使用这样的方法

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());
这里有一个。

您可以使用以下方法:

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());

此处,

可以使用空白字符

进行拆分。 字符串[]字=s.Split(“”)

然后你想写什么就写什么

我希望你觉得这有用。
尼古拉

可以使用空白字符< /p>进行拆分。 字符串[]字=s.Split(“”)

然后你想写什么就写什么

我希望你觉得这有用。 尼古拉或

var nrOfBlanks = 0;
var firstFive = new String(s.TakeWhile(c => 
                                        (nrOfBlanks += (c == ' ' ? 1 : 0)) < 5)
                             .ToArray());
var-nrOfBlanks=0;
var firstFive=新字符串(s.TakeWhile(c=>
(nrOfBlanks+=(c=''?1:0))<5)
.ToArray());
…仅仅是因为使用稍微过于复杂的Linq表达式进行字符串操作感觉非常有趣和性感。

或者

var nrOfBlanks = 0;
var firstFive = new String(s.TakeWhile(c => 
                                        (nrOfBlanks += (c == ' ' ? 1 : 0)) < 5)
                             .ToArray());
var-nrOfBlanks=0;
var firstFive=新字符串(s.TakeWhile(c=>
(nrOfBlanks+=(c=''?1:0))<5)
.ToArray());

…仅仅因为使用稍微过于复杂的Linq表达式进行字符串操作感觉非常有趣和性感。

一个小调整-您可以使用
.Split()
-默认情况下它会拆分whitespaces@lazyberezovsky够公平的了——我喜欢明确地展示我正在分裂的东西——没有那么多想象力:)真的非常感谢。我的两个问题都得到了答案。再次感谢。干杯!!!@Kohok很高兴我能提供帮助并欢迎来到StackOverflow!在StackOverflow上,如果您的问题的答案是正确的,请在分数下面用勾号将其标记为“已接受”-这样做也会得到2分:)@Kohok添加了解释以明确我在做什么。一个小的调整-您可以使用
.Split()
-默认情况下它会拆分whitespaces@lazyberezovsky够公平的了——我喜欢明确地展示我正在分裂的东西——没有那么多想象:)真的非常感谢。这两个问题我都得到了答案,再次感谢。干杯@Kohok很高兴我能帮忙,欢迎来到StackOverflow!在StackOverflow上,如果您的问题的答案是正确的,请在分数下方用勾号将其标记为“已接受”-这样做也会得到2分:)@Kohok补充了解释,以说明我在做什么。真的非常感谢。我两个问题都有答案