假设你有一个字符串文字,其中带有很多引号。你可以将它们全部逃脱,但这很痛苦,而且很难阅读。
在某些语言中,你可以执行以下操作:
foo = '"Hello, World"';
但是,在Java中,''它用于char,因此你不能以String这种方式将其用于s。某些语言具有解决此问题的语法。例如,在python中,你可以执行以下操作:
''
char
String
"""A pretty "convenient" string"""
Java是否有类似的东西?
答案是否定的,证明位于Java语言规范中:
StringLiteral: "StringCharacters" StringCharacters: StringCharacter | StringCharacters StringCharacter StringCharacter: InputCharacter but not " or \ | EscapeSequence
如你所见,一个字符只能StringLiteral由其绑定,”并且不能包含特殊字符且不进行转义。
StringLiteral
旁注:你可以嵌入Groovy的项目里面,这会扩展Java的语法让你的使用'''multi line string ''',' "string with single quotes" '也"string with ${variable}"。
'''multi line string '''
' "string with single quotes" '也"string with ${variable}"
不,我一直为Java中缺少不同的字符串文字语法而烦恼。
这是我不时使用的技巧:
String myString = "using `backticks` instead of quotes".replace('`', '"');
我主要只对静态字段执行类似的操作。由于它是静态的,因此在初始化类后,将一次调用字符串替换代码。因此,实际上不存在运行时性能损失,并且这使代码更加清晰易读。