【整理】Java中的raw string

【背景】

要在java代码中,输入一个路径,比如:

D:\tmp\tmp_dev_root\eclipse\common_root\antlrEddlParser\src

而想要将此路径,当做正常的字符串,在Java中赋值给String的话:

String ddFile = "D:\tmp\tmp_dev_root\eclipse\common_root\antlrEddlParser\src\preprocess_test.ddl";

会出错的。

所以,就像:

Python中的:

ddFile = r'D:\tmp\tmp_dev_root\eclipse\common_root\antlrEddlParser\src';

一样。

C#中的:

string ddFile = @"D:\tmp\tmp_dev_root\eclipse\common_root\antlrEddlParser\src";

想要找找,Java中的raw string的写法。

【解决过程】

1。随便搜了下,参考:

java有没有办法表示raw string

Raw Strings in Java – for regex in particular

结果却是:

Java中,竟然不支持Raw string。

对此,只有一个心情:

Java太挫了!!!

 

再加上,之前就遇到的:

等等,所以,总体上对于java的感觉就是:

Java语言,对于如此众多的,通用的,普通的功能,竟然不支持。

感觉Java真不是一般的垃圾。

毕竟,你说你要是对于某个复杂的功能,没有对应的库的支持,还说的过去;

但是你却对于语法级别的,通用的功能,竟然不支持,

作为语言设计者来说,真的不知道你是怎么想的。。。

 

2.虽然上述帖子中有个workaround:

This is a work-around if you are using eclipse. You can automatically have long blocks of text correctly multilined and special characters automatically escaped when you paste text into a string literal

"-paste here-";

if you enable that option in window→preferences→java→Editor→Typing→"Escape text when pasting into a string literal"

但是也不是通用的解决方案。所以还是不去采用该法了。

 

3.无奈。又不能让我自己去给Java本身添加此语法支持。

只能是:

手动写成:

D:\\tmp\\tmp_dev_root\\eclipse\\common_root\\antlrEddlParser\\src\\

然后又觉得太烦,只能换成另外一种写法了:

D:/tmp/tmp_dev_root/eclipse/common_root/antlrEddlParser/src/


【总结】

就一句话:

越来越发现了Java的烂。

(和Python,C#等的好了)



发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量