Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java打印原始字符串_Java - Fatal编程技术网

用java打印原始字符串

用java打印原始字符串,java,Java,假设我有这样一个字符串: String message = "Hi \n Prakash"; 我想按原样打印消息,而不是为\n打印换行符。 因此,期望的输出是: Hi \n Prakash Hi \n Prakash 而不是 Hi Prakash 请注意,我们不允许修改字符串消息。我该怎么做 编辑:我使用了\n作为示例。我的字符串中可能有类似的字符,如\t。您想对特殊字符进行转义。如果这是您的代码,并且您希望转义几个字符串,那么最好的方法是添加一个额外的斜杠 String messag

假设我有这样一个字符串:

String message = "Hi \n Prakash";
我想按原样打印
消息,而不是为
\n
打印换行符。 因此,期望的输出是:

Hi \n Prakash
Hi \n Prakash
而不是

Hi
 Prakash
请注意,我们不允许修改字符串
消息
。我该怎么做


编辑:我使用了
\n
作为示例。我的字符串中可能有类似的字符,如
\t

您想对特殊字符进行转义。如果这是您的代码,并且您希望转义几个字符串,那么最好的方法是添加一个额外的斜杠

String message = "Hi \\n Prakash";
输出:

Hi\n Prakash


但是,如果您想从文件中读取文本并将其以特殊字符的形式输出,请参考以下答案,这可以在Apache Commons text类的帮助下完成

import org.apache.commons.lang3.StringEscapeUtils;
输出为:

Hi \n Prakash
Hi \n Prakash

感谢Dima在回答中提供链接。

字符串的值与输出值完全相同,字符串中没有存储文本序列
\n
。你想做什么;dr:
\n!=\\n
“请注意,我们不允许修改字符串消息。”-您不能修改
字符串
。您需要的基本上是字节码操作。正如您应该知道的,您的source.java文件中的字符序列首先被转换为字节码。这将用等效字节码替换您的源代码。JVM在任何时候都不会在字符串中看到文本斜杠。等到它进入JVM时再这样做已经太晚了。为此,您必须检测并替换所有可能的可转义字符。@prakasht正确,确实如此,这就是您不能在字符串文本中使用
\u0022
的原因。我的观点是,您不能完全按照源代码中显示的方式打印消息:
“Hi\u005cn Prakash”
无法与
“Hi\n Prakash”
区分开来,因此您无法知道要打印这两种表单中的哪一种。这是正确的答案。@Prakash它没有显示如何添加额外的斜杠。在我看来,用额外的斜杠创建一个文字并没有什么用处……无论如何都不能解决字符串中包含任意转义字符的一般情况。@AndrewTobilko正确答案在上一篇文章中提供的链接中。答案本身毫无用处。