我在字符串“ Alena有两只手”中分配了一个字符(数字),如果它是单词中的字符,则写出整个单词。
我在字母前后写出了字符,直到它击中了空格,点或数组的第一个字符,但部分字符被反转了,我不确定如何在此代码中反转它。
我选择了“ num = 2”,所以用char'e',所以我想取回“ Alena”。我尝试过此
static void firstWord(String s1, int num)
{
char[] sentence = s1.ToCharArray();
for (int i = 0; i < sentence.Length; i++)
{
Console.Write(sentence[i]);
}
int y = 0;
Console.WriteLine("\n");
for (int s = 0; s < s1.Length; s++)
{
if (sentence[num - y] == ' ' || sentence[num - y] == '.' ||
sentence[num - y] == sentence[0])
{
if (sentence[num - y] == sentence[0])
{
Console.Write(sentence[0]);
s = s1.Length;
}
continue;
}
Console.Write(sentence[num - y]);
y++;
}
int x = 1;
for (int j = 0; j < x; j++)
{
if (sentence[num + x] == ' ' || sentence[num + x] == '.')
{
continue;
}
Console.Write(sentence[num + x]);
x++;
}
}
并且输出为“ elAna”,因此我需要将“ elA”反转为“ Ale”以使其起作用,但是我很迷茫。我想我知道基本反转的工作原理,但不确定在这种情况下如何使用它。或者,如果您有使用其他方法制作的方法,我也没有问题要重新制作。
如果可能,不使用正则表达式,则进行拆分和区分。
谢谢!
我不确定您要使用该循环做什么,但是如果您只是尝试获取以空格作为分隔符的字符串中的第一个单词,该单词与字符串中特定位置的字符匹配,那么您可以使用以下linq语句
static string firstWord(string s1, int num)
{
return s1.Split(' ').FirstOrDefault(x => x.Contains(s1.ElementAt(num)));
}
您可以像这样在您的主类中使用它,
string input = "Alena has 2 hands";
Console.WriteLine(firstWord(input, 2));
输出
Alena