我可以一个C#字符串值转换为转义字符串 [英] Can I convert a C# string value to an escaped string literal
本文介绍了我可以一个C#字符串值转换为转义字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在C#中,我可以将字符串值转换为字符串文字,我会看到它在code的方式吗?我想用自己的转义序列替换制表符,换行符,等等。
如果这个code:
Console.WriteLine(someString);
生产:
你好
世界!
我想这code:
Console.WriteLine(ToLiteral(someString));
制作:
\\ tHello \\ r \\ n \\ t世界!\\ r \\ n
解决方案
我发现这一点:
私有静态字符串ToLiteral(字符串输入)
{
使用(VAR作家=新的StringWriter())
{
使用(VAR提供商= codeDomProvider.CreateProvider(CSHARP))
{
provider.Generate codeFromEx pression(新codePrimitiveEx pression(输入),作家,NULL);
返回writer.ToString();
}
}
}
这code:
VAR输入=!\\ tHello \\ r \\ n \\ t世界;
Console.WriteLine(输入);
Console.WriteLine(ToLiteral(输入));
产地:
你好
世界!
\\ tHello \\ r \\ n \\ t世界!
In C#, can I convert a string value to a string literal, the way I would see it in code? I would like to replace tabs, newlines, etc. with their escape sequences.
If this code:
Console.WriteLine(someString);
produces:
Hello
World!
I want this code:
Console.WriteLine(ToLiteral(someString));
to produce:
\tHello\r\n\tWorld!\r\n
解决方案
I found this:
private static string ToLiteral(string input)
{
using (var writer = new StringWriter())
{
using (var provider = CodeDomProvider.CreateProvider("CSharp"))
{
provider.GenerateCodeFromExpression(new CodePrimitiveExpression(input), writer, null);
return writer.ToString();
}
}
}
This code:
var input = "\tHello\r\n\tWorld!";
Console.WriteLine(input);
Console.WriteLine(ToLiteral(input));
Produces:
Hello
World!
"\tHello\r\n\tWorld!"
这篇关于我可以一个C#字符串值转换为转义字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文