Jol*_*111 6 c# string text-manipulation
我有一个程序,你可以在其中输入一个字符串.但我希望删除引号""之间的文字.
例:
在:今天是一个非常"美好"和炎热的一天.
out:今天是一个非常"热"的日子.
Console.WriteLine("Enter text: ");
text = Console.ReadLine();
int letter;
string s = null;
string s2 = null;
for (s = 0; s < text.Length; letter++)
{
if (text[letter] != '"')
{
s = s + text[letter];
}
else if (text[letter] == '"')
{
s2 = s2 + letter;
letter++;
(text[letter] != '"')
{
s2 = s2 + letter;
letter++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道如何在引号之间没有文本的情况下将字符串写入控制台.我不允许使用像正则表达式这样的复杂方法.
这应该可以解决问题.它会检查字符串中的每个字符是否有引号.如果它找到引号然后设置一个quotesOpened标志true,那么它将忽略任何后续字符.
当遇到另一个引号时,它会将标志设置为false,因此它将继续复制字符.
Console.WriteLine("Enter text: ");
text = Console.ReadLine();
int letterIndex;
string s2 = "";
bool quotesOpened = false;
for (letterIndex= 0; letterIndex< text.Length; letterIndex++)
{
if (text[letterIndex] == '"')
{
quotesOpened = !quotesOpened;
s2 = s2 + text[letterIndex];
}
else
{
if (!quotesOpened)
s2 = s2 + text[letterIndex];
}
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
没有正则表达式,我更喜欢,但没关系:
string input = "abc\"def\"ghi";
string output = input;
int firstQuoteIndex = input.IndexOf("\"");
if (firstQuoteIndex >= 0)
{
int secondQuoteIndex = input.IndexOf("\"", firstQuoteIndex + 1);
if (secondQuoteIndex >= 0)
{
output = input.Substring(0, firstQuoteIndex + 1) + input.Substring(secondQuoteIndex);
}
}
Console.WriteLine(output);
Run Code Online (Sandbox Code Playgroud)
它能做什么:
"""和第二部分,包括第二部分"您可以通过搜索直到字符串的结尾并替换所有匹配项来自行改进.您必须记住您必须搜索的新"第一个索引".
| 归档时间: |
|
| 查看次数: |
1593 次 |
| 最近记录: |