快速提问。是否有等效于@的Java字符串:
例如,我可以@"c:\afolder\afile"
使用C#进行处理,并使其在处理时忽略转义字符,而不必这样做"c:\\afolder\\aFile"
。是否有Java等效项?
嗯:stackoverflow正在向我逃脱..大声笑。第二个示例应为:
c :(双反斜杠)文件夹(双反斜杠)aFile
@
可以同时使用语言关键字作为标识符,因此可以自由声明标题。
快速提问。是否有等效于@的Java字符串:
例如,我可以@"c:\afolder\afile"
使用C#进行处理,并使其在处理时忽略转义字符,而不必这样做"c:\\afolder\\aFile"
。是否有Java等效项?
嗯:stackoverflow正在向我逃脱..大声笑。第二个示例应为:
c :(双反斜杠)文件夹(双反斜杠)aFile
@
可以同时使用语言关键字作为标识符,因此可以自由声明标题。
Answers:
没有。转义/外部化字符串是您唯一的选择。
不,Java没有逐字字符串文字。
但是,如果要使用类似Java(和基于Java-VM的语言)的语言,则可能需要查看Groovy,它具有各种形式的字符串常量。
groovy.codehaus.org
链接已断开
正如肯特(Kent)和乔恩(Jon)所说,没有。
我只是在指出,即使对于您的特殊情况,假设有一个以上的一次性程序,对于一般情况而言,这也是一个坏主意。
Java程序可以在Windows以外的平台上运行,其他平台具有不同的文件定界符。因此,代替处理转义的反斜杠,处理特定示例的正确方法是获取文件分隔符属性:
String sep = System.getProperty("file.separator");
String filename = ROOTDIR + sep + "folder" + sep + "afile";
您将基于某些策略(不仅是平台,还希望您的“ afile”相对于实际文件系统根目录还是相对于用户的主目录)单独创建ROOTDIR。
但是可以肯定的是,使用文件分隔符属性可使您的程序更广泛地使用。还有工作吗?是。正如万达·赛克斯(Wanda Sykes)所说,“但是值得”。
目前,Java不支持它,但将来的版本中可能会提供。在2018/01/23 创建了JEP 326:Raw String Literals
在https://bugs.openjdk.java.net/browse/JDK-8196004中查看进度
大概有一天,您将能够做到:
`c:\afolder\afile`
更新: JEP建议从JDK 12:326删除:原始字符串文字(预览) 您可以在此处阅读基本原理: http : //mail.openjdk.java.net/pipermail/jdk-dev/2018-December/002402.html
更详细的信息在这里https://bugs.openjdk.java.net/browse/JDK-8215682
最重要的一点:Java在不久的将来将不会出现逐字字符串。即使出现,它也不会是``。