使用C#将空格转换为“+”

4
我希望将字符串转换为URL,并且在关键字之间需要用"+"代替空格。
例如:
"Hello I am"

to:

"Hello+I+am"

我该怎么做呢?

7个回答

11

5
String input = "Hello I am";
string output = input.Replace(" ", "+");

谢谢帮助,但我只需要在字符串包含多个单词时将空格转换为加号。我该如何构建这个条件? - klopske

4
你可以使用 string.Replace 来实现:
"Hello I am".Replace(' ', '+');

如果您想对字符串进行URL编码(不仅仅是处理空格),请使用Uri.EscapeUriString

Uri.EscapeUriString("Hello I am");

来自 MSDN:

默认情况下,EscapeUriString 方法会将除了 RFC 2396 未保留字符之外的所有字符都转换为它们的十六进制表示形式。如果启用了国际资源标识符 (IRIs) 或国际化域名 (IDN) 解析,则 EscapeUriString 方法将除了 RFC 3986 未保留字符之外的所有字符都转换为它们的十六进制表示形式。在进行转义之前,所有 Unicode 字符都会被转换为 UTF-8 格式。


请注意,使用EscapeUriString将产生“Hello%20I%20am”,而不是“Hello+I+am”。但在任何理智的系统中,这实际上不应该成为问题。 - LukeH

3

您可以尝试使用String.Replace方法。

"Hello I am".Replace(' ','+');


2
假设您只想将空格替换为加号,并且不进行完整的URL编码,则可以使用内置的Replace方法:(参考链接)
string withSpaces = "Hello I am";

string withPluses = withSpaces.Replace(' ', '+');

0
string s = "Hello I am";
s = s.Replace(" ", "+");

1
最好使用 String.Replace(char,char) 而不是 String.Replace(string,string) - abatishchev

0
回答你问题中“将字符串转换为URL”的部分(如果你想要正确的URL,就不应该手动转换字符串):
string url = "http://www.baseUrl.com/search?q=" + HttpUtility.UrlEncode("Hello I am");

你需要对每个参数调用 UrlEncode 方法来正确编码数值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接