【问题标题】:How to convert char string to character in C# [closed]如何在 C# 中将 char 字符串转换为字符 [关闭]
【发布时间】:2020-10-16 21:23:34
【问题描述】:

我正在尝试从输入中读取字符并将其转换为字符的 int 值。 输入字符串的格式为'[character value]'

我可以 ((int)input.ToCharArray()[1]) 但是,这不考虑转义序列(例如 \0 表示十六进制 0x00)

考虑到转义序列,有没有办法将字符串转换为字符? (此外,有没有办法将格式为"[string value]" 的字符串转换为考虑转义序列的字符串?)

【问题讨论】:

  • 请提供一些(多个)输入示例和预期输出。
  • 所有转义字符都会以 int 值
  • 您的代码正确返回0。你想要它回报什么?字符0的值忽略转义序列?

标签: c# string escaping character


【解决方案1】:

假设只有一个实际字符可能是 literal 转义序列,它被单引号和括号括起来。那么我猜你可以使用一个偷偷摸摸的正则表达式转义。

var input = "'[\0]'";
var trimmed = input.Substring(2,input.Length-4);
var escaped = Regex.Escape(trimmed);
var theByte = (byte) escaped[0];
Console.WriteLine(theByte);

Demo here

注意:这里有很多假设,可能有更好的方法来做到这一点,这可能存在我不知道的问题。

【讨论】:

  • 这不适用于input = "[]]"
  • @GuruStron 啊是的好点,也许最好使用你的子字符串
  • s.Substring(2, s.Length - 4); // or other way to strip '[ and ]', like regex 是的,当然)
猜你喜欢
  • 1970-01-01
  • 2013-03-14
  • 2013-04-15
  • 1970-01-01
  • 2012-03-07
  • 1970-01-01
  • 2018-09-02
  • 2012-01-16
  • 1970-01-01
相关资源
最近更新 更多