(:欢迎 star
字符串插值功能构建在复合格式设置功能的基础之上,提供更具有可读性、更方便的语法,用于将表达式结果包括到结果字符串。
若要将字符串标识为内插字符串,可在该字符串前面加上 $
或f
符号。 可嵌入任何会在内插字符串中返回值的有效 JAVA 表达式。
对某个表达式执行计算后,其结果立即转换为一个字符串并包含到结果字符串中:
支持 android 、java 等所有使用 javac 的项目
几乎不会增加额外编译时间
代码内容支持 idea 补全提示(需安装 idea 插件)
更多内插字符串语法糖支持
String text=f" this is F-$String.class.getSimpleName() ";
assert Objects.equals($"Zircon: [ ${text.trim()} ]","Zircon: [ "+text.trim()+" ]");
根据字符串前的前缀不同,拥有不同的字符串内插逻辑,请注意区别使用
$
前缀字符串($-string
):直接使用加号进行字符串的拼接,拥有最快的运行
JDK1.6 的情况,javac 遇到加号(+
)链接的字符串会自动转化成StringBuilder.append()
,不存在加号连接字符串额外的对象开销
如果首个子部分为非硬编码字符串,会自动包裹String.valueOf()
以防止拼接异常
f
前缀字符串(f-string
):使用 String.format 函数进行拼接,速度相比$-string
较慢
${}
代码块,你可以指定的每个内插代码块的显示格式:
在代码块的前部,增加一个以%
号开始的String.format
格式化标识,并且使用:
与后续代码块进行分隔 。形如:${%03d:12}
会输出012
的格式化结果未被大括号{}
包裹的简易代码块,拥有 java 特性自动识别代码范围的功能
请不要完全依赖该功能,只能简单判断括号匹配及后续引用,复杂语句请使用${}
如果要使用该功能,请注意根据插件提示的 java 代码注入范围来判断是否使用错误
为减少转义双引号的情况,${}
内可以使用单引号以替代双引号
char
类型,你需要使用\'C\'
进行转义这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.