java禁用转义字符_关于java:关于unicode转义字符的JDK 1.8给出的字符串文字没有被双引号错误正确关闭...

本问题已经有最佳答案,请猛点这里访问。

你好,智能社区,

我对这个问题做了一些研究,似乎找不到确切问题的答案。

我面临一个奇怪的编译时间问题,Java字符串文字包含Unicode转义代码。

下面是正在考虑的代码段:

String text = textArea.getText().trim();

String unicodeReturn ="\u000A";

text =

""" +

text

.replace("","%s")

.replace("\","\\\")

.replace(""","\\"")

.replace("

","\u000A")

+

""";

我得到一个编译时错误"字符串文本没有用双引号正确地结束"

String unicodeReturn ="\u000A";

奇怪的是,这条线

.replace("

","\u000A")

如果存在相同的Unicode文本,似乎不会导致任何问题。我使用Unicode符号语法已经有一段时间了。如果内存没有出现故障,则格式为uxxxx,其中x是十六进制数字。

我的环境是

JDK 1.8 066

麦考斯El Capitan

月蚀火星1

我的问题是:

有人遇到过同样的问题吗?

这是一个已知的JDK 1.8编译器错误吗?

是否有解决方案或解决方法?

有人知道我是否做错了什么吗?

(这很令人沮丧,阻止我编译代码)

stackoverflow.com/questions/30727515/…

在分析文本之前,将转换u个单码,以便

String unicodeReturn ="\u000A";

是一样的

String unicodeReturn ="

";

下面是一个hello world程序的示例,该程序完全由u代码组成https://stackoverflow.com/a/30727799/57695

\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0020\u0020\u0020

\u0063\u006c\u0061\u0073\u0073\u0020\u0055\u0067\u006c\u0079

\u007b\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0020\u0020

\u0020\u0020\u0020\u0020\u0073\u0074\u0061\u0074\u0069\u0063

\u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028

\u0053\u0074\u0072\u0069\u006e\u0067\u005b\u005d\u0020\u0020

\u0020\u0020\u0020\u0020\u0061\u0072\u0067\u0073\u0029\u007b

\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074

\u002e\u0070\u0072\u0069\u006e\u0074\u006c\u006e\u0028\u0020

\u0022\u0048\u0065\u006c\u006c\u006f\u0020\u0077\u0022\u002b

\u0022\u006f\u0072\u006c\u0064\u0022\u0029\u003b\u007d\u007d

相反,你可以

.replace("

","\\u000A")

或者只是

.replace("

","\

")

谢谢@peterlawrey,似乎u000a对源代码有一些奇怪的影响,这有效地阻止了程序员使用unicode新行。不幸的是,不能选择\u000a,因为它将转换为u000a"字符序列,而不是回车符。这个问题有趣的方面是,我的第二行代码没有导致编译器错误,只有第一行代码。你知道为什么吗?

@Nargar你已经有了回车符号,我解释了为什么你可以在字符串中使用\u000a,所以这一点都不奇怪。你的第二行对我来说也是一个错误,我建议你的编译器不会因为前一行而显示这个错误。

我的用例是不同的,我正在构造的字符串是一个adb shell的shell命令,在这里我不能有这个命令。虽然不太确定u000a是否是解决方案,但是我正在做一些尝试和错误。如果你知道在adb shell命令中使用回车表示的好方法,我很乐意学习这种方法。

@我不清楚你需要做什么。ADB句柄 afaik。

adb shell输入文本命令不为我处理。尝试过各种各样的事情。我使用的是Android SDK 23

@所以你需要知道怎样把翻译成\u000a是一样的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值