字符串格式和十六进制字符

发布于 2024-09-30 13:22:48 字数 279 浏览 2 评论 0原文

有人可以解释为什么这不起作用:

string f = string.Format("\\x{0:00}{{0}}", 5);
string o = string.Format(f, "INSERT TEXT");
System.Diagnostics.Debug.WriteLine(f + " : " + o);

输出是:

\x05{0} : \x05INSERT TEXT

为什么 \x05 没有被替换?

can someone explain why this doesnt work:

string f = string.Format("\\x{0:00}{{0}}", 5);
string o = string.Format(f, "INSERT TEXT");
System.Diagnostics.Debug.WriteLine(f + " : " + o);

Output is:

\x05{0} : \x05INSERT TEXT

why does the \x05 not get replaced?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

短叹 2024-10-07 13:22:48

参数的格式应在格式说明符中设置,否则您只是插入文字“\x”。像这样:

// "5" as a lowercase 2-digit hex
string f = string.Format("{0:x2}{{0}}", 5);

不要混淆源代码中十六进制文字的表示方式与格式化字符串中打印的内容,它们是不同的东西。

The format for the argument should be set in the format specifier, otherwise you're just inserting a literal "\x". Like this:

// "5" as a lowercase 2-digit hex
string f = string.Format("{0:x2}{{0}}", 5);

Don't confuse how you represent a hex literal in source code with what you would print in a formatted string, they are different things.

尤怨 2024-10-07 13:22:48

要将文字字符放入字符串中,只需确保编译器知道它是字符即可。

string f = string.Format("{0}", (char)5);
string g = string.Format("{0}", Convert.ToChar(5));
string h = string.Format("{0}", char.ConvertFromUtf32(5));

或者你可以从一个真正的角色开始:

string i = string.Format("{0}", '\x05');
string j = string.Format("{0}", '\u0005');
string k = string.Format("{0}", '\U00000005');

选择你的选择。

To put a literal char in a string, just make sure that the compiler knows it's a char.

string f = string.Format("{0}", (char)5);
string g = string.Format("{0}", Convert.ToChar(5));
string h = string.Format("{0}", char.ConvertFromUtf32(5));

or you can start out with a real char:

string i = string.Format("{0}", '\x05');
string j = string.Format("{0}", '\u0005');
string k = string.Format("{0}", '\U00000005');

Take your pick.

甜扑 2024-10-07 13:22:48

这是你需要的吗?

  int x = 5;
  string f = string.Format("\\x{0:x2}{1}", x, "INSERT TEXT");
  Console.WriteLine(f);

Is this what you need?

  int x = 5;
  string f = string.Format("\\x{0:x2}{1}", x, "INSERT TEXT");
  Console.WriteLine(f);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文