C# 字符串替换在c中的特定位置#
我有一个字符串C# 字符串替换在c中的特定位置#,c#,asp.net,regex,c#-4.0,C#,Asp.net,Regex,C# 4.0,我有一个字符串Classic-T50(黑色+灰色) 当我通过查询字符串发送到时,它将显示在下一页中 Classic-T50 (Black Grey) 所以我只想在这个字符串的括号()部分的空格中添加+ Classic-T50 (Black+Grey). 我尝试了string.Replace(“,“+”),但它产生了 Classic-T50+(Black+Grey). 但是我想要字符串Classic-T50(黑色+灰色)。 请帮帮我。试试: String.Replace("k ","k+")
Classic-T50(黑色+灰色)
当我通过查询字符串发送到时,它将显示在下一页中
Classic-T50 (Black Grey)
所以我只想在这个字符串的括号()部分的空格中添加+
Classic-T50 (Black+Grey).
我尝试了string.Replace(“,“+”)
,但它产生了
Classic-T50+(Black+Grey).
但是我想要字符串Classic-T50(黑色+灰色)。
请帮帮我。试试:
String.Replace("k ","k+")
您可以对其进行URL编码以保留特殊字符:
Server.UrlEncode(mystring)
或者将+符号替换为“%252b”,然后对其进行编码:
string myTitle = mystring.Trim().Replace("+", "%252b");
Response.Redirect("~/default.aspx?title=" + Server.UrlEncode(myTitle));
请记住,一旦您尝试检索它,请对其进行解码:
Server.UrlDecode(Request.QueryString["title"]);
要修改的字符串的格式是什么?这个代码行吗
void Main()
{
var str = "Classic-T50 (Black Grey)";
Console.WriteLine(FormatWithPlus(str));
}
public string FormatWithPlus(string str){
var str1 = str.Substring(0, str.IndexOf('('));
var str2 = str.Substring(str.IndexOf('('));
return str1 + str2.Replace(' ', '+');
}
可以使用替换括号内的所有空格:
var pattern = @"\s(?![^)]*\()";
var data = "Classic-T50 (Black Grey)";
var replacement = "+";
var regex = new Regex(pattern);
var transformedData = regex.Replace(data, replacement); // Classic-T50 (Black+Grey)
这种方法适用于任何输入字符串。例如,字符串标题(abcd)
将转换为标题(+A+B+C+D+)
其他链接:
- 正则表达式解释:
StringBuilder
并将其转换回string
。StringBuilder与字符串的不同之处在于它们是可变的和非插入的。它将数据存储在数组中,因此您可以像在数组中一样替换字符:
void Main()
{
var input = "Classic-T50 (Black Grey)";
StringBuilder inputsb = new StringBuilder(input);
var openParens = input.IndexOf('(');
var closeParens = input.IndexOf(')');
var count = closeParens - openParens;
//Console.WriteLine(input);
//inputsb[18] = '+';
inputsb.Replace(' ', '+', openParens, count);
Console.WriteLine(inputsb.ToString());
}
请参见使用此代码
public class Program
{
private static void Main(string[] args)
{
const string abc = "Classic-T50 (Black Grey)";
var a = abc.Replace("k ", "k+");
Console.WriteLine(a);
Console.ReadKey();
}
}
您应该对字符串进行url编码。现在Gridview中的查询字符串如何编码?如果
%252b
您将获得%2b
。你不需要对转义字符进行编码.老兄。。你太可怕了!!似乎您的需求已被细化为将括号内的所有空格替换为加号。您可以使用下面的字符串生成器示例;我将根据新的要求进行修改。