Java char文字到C#char literal

时间:2010-05-02 12:58:54

标签: c# java character

我正在维护一些我目前正在转换为C#的Java代码。

Java代码正在执行此操作:

sendString(somedata + '\000');

在C#中我试图做同样的事情:

sendString(somedata + '\000');

但是''000'VS2010告诉我“字符文字中的字符过多”。如何在C#中使用'\ n''?我试图找出角色是什么,但它似乎是“”或某种换行符。

你对这个问题一无所知吗?

谢谢!

2 个答案:

答案 0 :(得分:6)

'\0'在C#中会很好。

发生的事情是C#看到\0并将其转换为ASCII值为0的空字符;然后它再看到两个0 s,这在字符中是非法的(因为你使用单引号,而不是双引号)。 nul-character通常不可打印,这就是为什么当你试图打印时它看起来像一个空字符串。

您在Java中输入的内容是支持octal数字的字符文字。 C#不支持字符中的八进制文字,以减少编程错误。 *

<{1}}格式的{p> C# does supports Unicode literals,其中'\u0000'是1-4位十六进制数字。

* 例如,在PHP中,如果键入前导零为有效八进制数的数字,则会进行转换。如果它不是合法的八进制数,则无法正确转换。 0000在我的计算机上输出<? echo 017; echo ", "; echo 018; ?>

答案 1 :(得分:4)

那是null character,也称为NUL。您可以在C#中将其写为'\ 0'。

在C#中,字符串“\ 000”表示三个字符:空字符,后跟两个零数字。由于字符文字只能包含一个字符,因此您会收到错误“字符文字中的字符太多”。