Zircon
Zircon可以让你在Java语言中使用内插字符串语法
什么叫内插字符串?
字符串插值功能构建在复合格式设置功能的基础之上,提供更具有可读性、更方便的语法,用于将表达式结果包括到结果字符串。
对某个表达式执行计算后,其结果立即转换为一个字符串并包含到结果字符串中
如何使用内插字符串
若要将字符串标识为内插字符串,可在该字符串前面加上
$
或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()+" ]");
高级语法糖
- 根据字符串前的前缀不同,拥有不同的字符串内插逻辑,请注意区别使用
1. $
前缀字符串($-string
):
直接使用加号进行字符串的拼接,拥有最快的运行
1. JDK1.6的情况,javac遇到加号(`+`)链接的字符串会自动转化成`StringBuilder.append()`,不存在加号连接字符串额外的对象开销
2. 如果首个子部分为非硬编码字符串,会自动包裹`String.valueOf()`以防止拼接异常#### 2. `f`前缀字符串(`f-string`):
使用String.format函数进行拼接,速度相比
$-string
较慢
1. 如果是使用大括号包裹的`${}`代码块,你可以指定的每个内插代码块的显示格式:
在代码块的前部,增加一个以`%`号开始的`String.format`格式化标识,并且使用`:`与后续代码块进行分隔 。形如:`${%03d:12}`会输出`012`的格式化结果
- 未被大括号
{}
包裹的简易代码块,拥有java特性自动识别代码范围的功能
1. 请不要完全依赖该功能,只能简单判断括号匹配及后续引用,复杂语句请使用`${}`
2. 如果要使用该功能,请注意根据插件提示的java代码注入范围来判断是否使用错误
- 为减少转义双引号的情况,
${}
内可以使用单引号以替代双引号
1. 如果需要使用单引号以声明`char`类型,你需要使用`\'C\'`进行转义
插件引入
使用Gradle构建项目
Step 1. 在你的根目录项目build.gradle
文件中进行如下操作
1 | markdown复制代码 allprojects { |
Step 2. 在需要使用插件的module的build.gradle
文件中进行如下操作
1 | arduino复制代码 dependencies { |
当前版本号:2.3
如果编译安卓项目,module的build.gradle
文件中加入以下代码,以配置javac参数
1 | javascript复制代码 tasks.withType(JavaCompile) { |
如果编译标准java项目(非安卓项目),以配置javac参数
1 | arduino复制代码 compileJava { |
使用Maven构建项目
Step 1. 增加依赖
1 | xml复制代码 <dependency> |
Step 2. 配置jitpack仓库
1 | xml复制代码 <repositories> |
当前版本号:2.3
Step 2. 配置javac参数 ("-Xplugin:ZrString")
1 | xml复制代码 <plugin> |
安装IDEA插件
本插件尚未发布至idea仓库,请手动下载安装
- 点击 这里[ijplugin.zip] 进行下载
- 下载文件后拖动至idea中自动安装
其他注意事项
- 请注意保持idea插件更新到最新
本文转载自: 掘金