我想从字符串中删除字符的所有实例,除非该字符后跟任何形式或空格。我还没有编写单元测试,但是下面的代码似乎可以实现我想要的功能(可能现在忘记一两个边缘情况了)。虽然感觉很笨拙。有人可以建议改进吗?
public string Strip(string text, char c)
{
if (!string.IsNullOrEmpty(text))
{
bool characterIsInString = true;
int currentIndex = 0;
while (characterIsInString)
{
currentIndex = text.IndexOf(c, currentIndex + 1);
if (currentIndex != -1)
{
var charAfter = text.Substring(currentIndex + 1, 1);
if (charAfter != " ")
{
text = text.Remove(currentIndex, 1);
}
}
else
{
characterIsInString = false;
}
}
}
return text;
}
答案 0 :(得分:4)
您可以使用正则表达式(这里我假设字符是x):
string result = Regex.Replace( input , "x(?=\\S)" , "");
Live Demo。请检查它是否使用了很少的步骤来找到它。
答案 1 :(得分:1)
我建议您使用以下代码:
public string Strip(string text, char c)
{
Regex regex = new Regex(c.ToString() + @"[^\s]");
return regex.Replace(text, "");
}
如果char
中的text
是not
,然后是白色Space
,则会删除let protocolo = txtProtocolo.text!
var request = URLRequest(url: url)
let parameters = "protocolo=\(protocolo) "
request.httpMethod = "POST"
request.httpBody = parameters.data(using: String.Encoding.utf8)
URLSession.shared.dataTask(with: request)
{ (data, response, error) in
....
。
这是一个非常简单且快速的正则表达式。
答案 2 :(得分:0)
如果要替换字符
您可以使用Replace
方法替换char
关注代码:
Console.ReadLine().Replace("e","h");