首页 > 解决方案 > 如何在C#中将char字符串转换为字符

问题描述

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

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

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

标签: c#stringescapingcharacter

解决方案


假设只有一个实际字符可能是文字转义序列,它被单引号和方括号包围。然后我猜你可以使用偷偷摸摸的正则表达式转义。

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

演示在这里

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


推荐阅读