Pourquoi ne puis-je pas utiliser \u000D et \u000A CR et LF en Java?
Pourquoi ne puis-je pas utiliser \u000D et \u000A CR et LF en Java? Elle donne une erreur quand je compile le code:
illegal line end in character literal
Vous devez vous connecter pour publier un commentaire.
Unicode fuites sont pré-traitées avant que le compilateur est exécuté. Donc, si vous mettez
\u000A
dans un littéral de Chaîne comme ceci:Il sera compilé exactement comme si vous avez écrit:
En tenir à
\r
(retour chariot;0x0D
) et\n
(saut de ligne;0x0A
)Bonus: Vous pouvez toujours avoir du plaisir avec cette, surtout étant donné les limitations sur la plupart des surligneurs syntaxe. La prochaine fois que vous avez une seconde, essayez d'exécuter ce code:
\u0008
pour retour arrière puis pas de travail pour supprimer le code précédent?//
est un identificateur valide forum, vous pouvez utiliser l'unicode échappe. Il est beaucoup plus facile de raisonner sur la façon dont le préprocesseur fonctionne en Java, mais il est aussi beaucoup plus facile à tirer dans le pied.@
(même si c'est plus utile pour des générateurs de code, en général).blah.cs(5,19): error CS1056: Unexpected character '\u002F'
(quelques fois) etblah.cs(5,19): error CS1519: Invalid token '\u002F' in class, struct, or interface member declaration
. Bien que je suppose qu'il n'y a pas beaucoup de code C# qui tente de (ab)de l'utiliser.Parce qu'il se situe dans la plage de Unicode des caractères de Contrôle
Qui est
U+0000–U+001F
etU+007F
.Ils peuvent être neutralisés par l'aide de
\
comme décrit dans la réponse ci-dessus par @MarkDE RFC: