将字符表示为 utf-16 代码单元
represents a character as a utf-16 code unit
StringBuilder builder = new StringBuilder();
builder.Append(" \(Nested \(parentheses\) dont need a backslash.\) \(But a single \(parenthe)");
for(int i=0;i<builder.Length;i++)
{
if(data[i] == "\" && data[i-1] == "\")
data[i] += " ";
}
如果字符串中有两个反斜杠。我需要在它们之间添加一个 space 。在上面的代码中,我在 if 条件下得到错误 "represents a character as a utf-16 code unit"。因为,使用它,我正在创建一个 PDF 文件。提前致谢。
将鼠标悬停在这段代码上时得到的消息:
"\"
这一行:
if (data[i] == "\" && data[i-1] == "\")
其实不是错误而是classString
的comment/description。
反斜杠用于表示 escape sequence。文档告诉:
Character combinations consisting of a backslash (\) followed by a letter or by a combination of digits are called "escape sequences." To represent a newline character, single quotation mark, or certain other characters in a character constant, you must use escape sequences. An escape sequence is regarded as a single character and is therefore valid as a character constant.
之所以会产生混淆,是因为编译器认为您在使用 \"
时希望将 "
作为字符串中的一个字符。这就是为什么 intellisense 仍然用 string
的颜色标记该行的其余部分,直到找到前面没有反斜杠的 "
为止。
您可以使用 @
运算符强制按原样解释字符串,因此反斜杠将变成一个字符:
if (data[i] == @"\" && data[i-1] == @"\")
你的代码变得可编译。
不幸的是,当 i
为 0 时,您的循环将在第一次迭代中中断。因为 data
不能用 -1 索引。
如果您的问题是在两个连续的反斜杠之间放置 space,我建议采用不同的方法。
您可以像这样简单地使用 Replace
方法:
string s = @"\(Nested \(parentheses\) dont need a backslash.\) \(But a single \(parenthe)";
s = s.Replace(@"\", @"\ \");
我不太明白 data
数组在您的代码中扮演什么角色,但您也可以使用 StringBuilder
StringBuilder builder = new StringBuilder();
builder.Append(@" \(Nested \(parentheses\) dont need a backslash.\) \(But a single \(parenthe)");
builder.Replace(@"\", @"\ \");
StringBuilder builder = new StringBuilder();
builder.Append(" \(Nested \(parentheses\) dont need a backslash.\) \(But a single \(parenthe)");
for(int i=0;i<builder.Length;i++)
{
if(data[i] == "\" && data[i-1] == "\")
data[i] += " ";
}
如果字符串中有两个反斜杠。我需要在它们之间添加一个 space 。在上面的代码中,我在 if 条件下得到错误 "represents a character as a utf-16 code unit"。因为,使用它,我正在创建一个 PDF 文件。提前致谢。
将鼠标悬停在这段代码上时得到的消息:
"\"
这一行:
if (data[i] == "\" && data[i-1] == "\")
其实不是错误而是classString
的comment/description。
反斜杠用于表示 escape sequence。文档告诉:
Character combinations consisting of a backslash (\) followed by a letter or by a combination of digits are called "escape sequences." To represent a newline character, single quotation mark, or certain other characters in a character constant, you must use escape sequences. An escape sequence is regarded as a single character and is therefore valid as a character constant.
之所以会产生混淆,是因为编译器认为您在使用 \"
时希望将 "
作为字符串中的一个字符。这就是为什么 intellisense 仍然用 string
的颜色标记该行的其余部分,直到找到前面没有反斜杠的 "
为止。
您可以使用 @
运算符强制按原样解释字符串,因此反斜杠将变成一个字符:
if (data[i] == @"\" && data[i-1] == @"\")
你的代码变得可编译。
不幸的是,当 i
为 0 时,您的循环将在第一次迭代中中断。因为 data
不能用 -1 索引。
如果您的问题是在两个连续的反斜杠之间放置 space,我建议采用不同的方法。
您可以像这样简单地使用 Replace
方法:
string s = @"\(Nested \(parentheses\) dont need a backslash.\) \(But a single \(parenthe)";
s = s.Replace(@"\", @"\ \");
我不太明白 data
数组在您的代码中扮演什么角色,但您也可以使用 StringBuilder
StringBuilder builder = new StringBuilder();
builder.Append(@" \(Nested \(parentheses\) dont need a backslash.\) \(But a single \(parenthe)");
builder.Replace(@"\", @"\ \");