如何在C#中转义变量?
我想知道你到底是怎么了 这种代码的和平?我的意思是如何逃跑 从字符串中提取变量(用C#表示)?(如果我正确理解了逃跑是什么。) 我想键入一个制表符并插入新行(我知道可以直接在WriteLine中写入\n和\t,但我假设我们想从用户处获取特殊字符)如何在C#中转义变量?,c#,string,variables,escaping,C#,String,Variables,Escaping,我想知道你到底是怎么了 这种代码的和平?我的意思是如何逃跑 从字符串中提取变量(用C#表示)?(如果我正确理解了逃跑是什么。) 我想键入一个制表符并插入新行(我知道可以直接在WriteLine中写入\n和\t,但我假设我们想从用户处获取特殊字符) 提前谢谢。☺ 这样保留反斜杠会使其成为“无法识别的转义序列”,因此您需要使用第二个反斜杠使其无效或“转义”,从而生成最终代码: int i; string x; for(i=0;i<10;i++) { x= @"\u00A" + i; //if
提前谢谢。☺ 这样保留反斜杠会使其成为“无法识别的转义序列”,因此您需要使用第二个反斜杠使其无效或“转义”,从而生成最终代码:
int i;
string x;
for(i=0;i<10;i++)
{
x= @"\u00A" + i; //if you want the backslash
// without @ it's x= "\\u00A"+i; //so the backslash is escaped
Console.WriteLine(x);
}
int i;
string x;
for(i=0;i<10;i++)
{
x="\\u00A" + i;
Console.WriteLine(x);
}
inti;
字符串x;
对于(i=0;iUnicode转义序列需要4位数字:
for(var i = 0; i < 10; i++)
{
var x="\u000A"+i; // notice 3 zeros
Console.WriteLine(x);
}
for(变量i=0;i<10;i++)
{
var x=“\u000A”+i;//注意3个零
控制台写入线(x);
}
注释
- 通常您会使用
“\n”
作为新行(甚至是控制台。Write(“\n”+i);
- 向字符串中添加整数(或任何其他值)会自动调用
.ToString
,以便您可以向字符串中添加任何对象。通常,最好使用string.Format(“\n{0}”,i);
而不是+
,以提供更灵活/可读的格式(添加许多字符串-有更好的方法-搜索)
- 如果要将带有代码的字符写入特定整数值(如32是空格),则应将其强制转换为
char
:x=“\u000A”+(char)i
-还应选择可打印范围(如32-42)
欢迎来到SO。你做过哪些研究?这个问题可以说是一个基本问题,最好读一本欢迎来到c#的书或教程。欢迎来到Stack Overflow!请你的问题指出你期望的x
是什么,以及这与转义有什么关系。搜索到的@Ali是“Unicode表”您的实际目标是什么?很可能您完全误解了字符串的“escape”含义,因为如果生成稍后将被编译的C#(或Java/C/C++/JavaScript)代码,您的最后一行将非常有用……字符串由'\\'
和't'
(2个字符,请注意,在C中表示\需要转义)与'\t
-代码为9的单个字符非常不同。是的,我可能误解了它。顺便说一句,我想象了一个这样的程序:“Console.WriteLine(\nHello”);string s=Console.ReadLine();string sp;switch(s){case“t”:{sp=“\t”;break;}case“e”:{sp=“\n”;break;}case“u”:{Console.Write(“键入您的unicode号码”);string st=Console.ReadLine();sp=char.ConvertFromUtf32(int.Parse(st,System.Globalization.NumberStyles.HexNumber));break;}默认值:{sp=“Error”;break;}}Console.Write(sp);Console.Write(“您!”;“无需担心。我想,现在很少有人使用控制台(我在学习C#,这个问题突然出现了)。谢谢。哦,我想这是被误解了。我想要unicode字符而不是ascii。例如00A9=?和00A5=¥不需要在这里说谢谢=)但是你很受欢迎。for(char C=0xa9;C<0xb5;C++)
会简单得多…但不是OP要求的。。。(@Ali-很乐意解释为什么你不能用simple来处理
)实际上我可以,但我的目的是在一个像“\MyVariable”这样的变量后面使用一个变量,我们从用户那里得到了它,例如“MyVariable=n;”,而C似乎不可能首先编译代码(是吗?)(但是也可以像这样从用户处获取'MyVariable=“\n””,但它实际上不再在反斜杠后使用变量)@Ali不,这是不可能的…编译器(虽然是一个很好的软件,但没有那么智能)如何区分这些情况…转义序列被视为一个字符,即“/n”是一个换行符,“\t”是一个制表符。没有办法,这完全没问题。你有这么多函数,让字符串的使用变得简单,所以总会有解决办法。
for (int i = 0; i < 10; i++)
{
Console.WriteLine(
char
.ConvertFromUtf32(
int.Parse("00A"+ i, System.Globalization.NumberStyles.HexNumber)));
}
string a,b;
a="\t";
b="\n";
Console.WriteLine("Hi{0}All{1}",a,b);
int i;
string x;
for(i=0;i<10;i++)
{
x="\\u00A" + i;
Console.WriteLine(x);
}
for(var i = 0; i < 10; i++)
{
var x="\u000A"+i; // notice 3 zeros
Console.WriteLine(x);
}