Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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_String_Escaping_Eval - Fatal编程技术网

如何在java字符串中应用转义字符

如何在java字符串中应用转义字符,java,string,escaping,eval,Java,String,Escaping,Eval,我的问题是 我从一个文件中读到一段文字 在文本文件中有一些这样的文本 Base64.valueOf("\030)?8*\"q1;16=\0331:?5/8~:8(6y", 42 - -33)) 我能用正则表达式得到文本 \030)?8*\"q1;16=\0331:?5/8~:8(6y 但字符串在语句下方相等 regText = "\\030)?8*\\"q1;16=\\0331:?5/8~:8(6y" 但我想要的确切字符串是 expectedText = "\030)?8*\"q1;16=

我的问题是 我从一个文件中读到一段文字 在文本文件中有一些这样的文本

Base64.valueOf("\030)?8*\"q1;16=\0331:?5/8~:8(6y", 42 - -33))
我能用正则表达式得到文本

\030)?8*\"q1;16=\0331:?5/8~:8(6y
但字符串在语句下方相等

regText = "\\030)?8*\\"q1;16=\\0331:?5/8~:8(6y"
但我想要的确切字符串是

expectedText = "\030)?8*\"q1;16=\0331:?5/8~:8(6y"
那么如何将regText转换为expectedText呢

在这方面,我几乎做到了我所期望的

除非不是将“\030”改为“\030”,而是通过使用将其改为“030”

您可以执行以下操作:

expectedText = regText.replaceAll("\\\\", "\\");
它将把
regText
字符串中的双反斜杠替换为您所期望的简单反斜杠。

通过使用,您可以执行以下操作:

expectedText = regText.replaceAll("\\\\", "\\");

这将把
regText
字符串中的双反斜杠替换为您所期望的简单反斜杠。

如果写入文件的程序正确地从一开始写入数据,您的问题就会变得更容易。如果不可能,请使用apache commons lang中的StringEscapeUtils

System.out.println(StringEscapeUtils.unescapeJava("New line: \\n Tab: \\t"));

该调用手动处理\n并将其转换为换行符。它只处理文本。八进制和八进制只能靠你自己。您总是可以分叉代码,也可以处理八进制。

如果写入文件的程序一开始就正确地写入数据,那么问题就会变得更容易。如果不可能,请使用apache commons lang中的StringEscapeUtils

System.out.println(StringEscapeUtils.unescapeJava("New line: \\n Tab: \\t"));

该调用手动处理\n并将其转换为换行符。它只处理文本。八进制和八进制只能靠你自己。您始终可以分叉代码并处理八进制。

文本文件的含义是什么?这将不会编译-Base64.valueOf(“\030”)?8*\“q1;16=\0331:?5/8~:8(6y),42--33))。regText也没有正确转义。你能详细解释一下你的问题吗?@Jon这是一个带解密的源文件。我尝试在另一个问题中读取它,并重新计算它的值Base64.valueOf(“\030”)?8*\”q1;16=\0331:?5/8~:8(6y,42--33))@YuanChen:“带解密”是什么意思?我怀疑任何简单的解析源文件的尝试都会非常脆弱。@DeepakBala我将在我的程序中导入Base64类,然后我需要获取文本来重新计算值Base64.valueOf(expectedText,9)。但问题是,当我读取源文件时,它已经转义了字符。例如,当您使用String text=“\n”时,则输出时的文本为新行,但当我从文本文件读取文本时,文本为=“\\n”,因此,当输出时它不是新行。因此,我无法重新计算该值。文本文件表示什么?这不会编译-Base64.valueOf(“\030”)?8*\“q1;16=\0331:?5/8~:8(6y),42--33))。regText也没有正确转义。你能详细解释一下你的问题吗?@Jon这是一个带解密的源文件。我尝试在另一个问题中读取它,并重新计算它的值Base64.valueOf(“\030”)?8*\”q1;16=\0331:?5/8~:8(6y,42--33))@YuanChen:“带解密”是什么意思?我怀疑任何简单的解析源文件的尝试都会非常脆弱。@DeepakBala我将在我的程序中导入Base64类,然后我需要获取文本来重新计算值Base64.valueOf(expectedText,9)。但问题是,当我读取源文件时,它已经转义了字符。例如,当您使用String text=“\n”时,则输出时的文本为新行,但当我从文本文件读取文本时,文本为=“\\n”,因此,当输出时它不是新行。所以我无法重新计算该值。嗨,我的问题是我需要在读取字符串中替换一些转义字符。“\\030”行必须是“\030”嗨,我的问题是我需要替换读取字符串中的一些转义字符。请将“\\030”改为“\030”,谢谢。我添加了八进制字符串的映射来替换它。看起来一切都好了。谢谢,你好,谢谢。我添加了八进制字符串的映射来替换它。看起来一切都好了。谢谢