我想知道错误是什么 这个代码的和平?我的意思是如何逃避 来自字符串的变量(在C#中)? (如果我已经正确地理解了逃避的是什么。)
int i;
string s;
for(i=0;i<10;i++)
{
s="\u00A"+i;
Console.WriteLine(s);
}
(其实我想要程序写 一组unicode聊天器来制作一个解码表,例如00A9 =®和00A5 =¥。 或者一般来说我想在反斜杠之后使用一个变量)
简化:
string a,b;
a="t";
b="n";
Console.WriteLine("Hi\{0}All\{1}",a,b);
我想输入一个标签并插入一个新行(我知道可以在WriteLine中直接写\ n和\ t,但我想我们想从用户那里获得特殊的字符) 提前致谢。 ☺
答案 0 :(得分:2)
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);
}
修改强>
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);
答案 1 :(得分:0)
同样保留反斜杠会使其成为“无法识别的转义序列”,因此您需要使用第二个反斜杠来取消或“转义”反斜杠,从而制作最终代码:
int i;
string x;
for(i=0;i<10;i++)
{
x="\\u00A" + i;
Console.WriteLine(x);
}
答案 2 :(得分:0)
Unicode转义序列需要4位数字:
for(var i = 0; i < 10; i++)
{
var x="\u000A"+i; // notice 3 zeros
Console.WriteLine(x);
}
注释
"\n"
用于新行(甚至是Environemnt.NewLine
),例如Console.Write("\n" + i);
.ToString
,因此您可以将任何对象添加到字符串中。通常最好使用String.Format("\n {0}", i);
而不是+
来提供更灵活/可读的格式(添加许多字符串 - 有更好的方法 - 搜索)。char
:x="\u000A"+(char)i
- 您也应选择可打印范围(如32- 42)。