跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 来了来了,完整支持 [ Java 内插字符串] 语法的插件来了
未分類
13 6 月 2021

来了来了,完整支持 [ Java 内插字符串] 语法的插件来了

来了来了,完整支持 [ Java 内插字符串] 语法的插件来了

資深大佬 : 122006 9

2.0+版本完整支持内插字符串,拥有代码段 idea 提示、前缀标识、高级语法糖等特性,欢迎大家指教

项目地址122006/Zircon

(:欢迎 star

什么叫内插字符串?

字符串插值功能构建在复合格式设置功能的基础之上,提供更具有可读性、更方便的语法,用于将表达式结果包括到结果字符串。

如何使用内插字符串

若要将字符串标识为内插字符串,可在该字符串前面加上 $或f 符号。 可嵌入任何会在内插字符串中返回值的有效 JAVA 表达式。

对某个表达式执行计算后,其结果立即转换为一个字符串并包含到结果字符串中:

特性

  1. 支持 android 、java 等所有使用 javac 的项目

  2. 几乎不会增加额外编译时间

  3. 代码内容支持 idea 补全提示(需安装 idea 插件)

  4. 更多内插字符串语法糖支持

使用示例

String text=f" this is F-$String.class.getSimpleName() ";

assert Objects.equals($"Zircon: [ ${text.trim()} ]","Zircon: [ "+text.trim()+" ]");

高级语法糖

  1. 根据字符串前的前缀不同,拥有不同的字符串内插逻辑,请注意区别使用

    1. $前缀字符串($-string):

    直接使用加号进行字符串的拼接,拥有最快的运行

    1. JDK1.6 的情况,javac 遇到加号(+)链接的字符串会自动转化成StringBuilder.append(),不存在加号连接字符串额外的对象开销

    2. 如果首个子部分为非硬编码字符串,会自动包裹String.valueOf()以防止拼接异常

    2. f前缀字符串(f-string):

    使用 String.format 函数进行拼接,速度相比$-string较慢

    1. 如果是使用大括号包裹的${}代码块,你可以指定的每个内插代码块的显示格式: 在代码块的前部,增加一个以%号开始的String.format格式化标识,并且使用:与后续代码块进行分隔 。形如:${%03d:12}会输出012的格式化结果
  2. 未被大括号{}包裹的简易代码块,拥有 java 特性自动识别代码范围的功能

    1. 请不要完全依赖该功能,只能简单判断括号匹配及后续引用,复杂语句请使用${}

    2. 如果要使用该功能,请注意根据插件提示的 java 代码注入范围来判断是否使用错误

  3. 为减少转义双引号的情况,${}内可以使用单引号以替代双引号

    1. 如果需要使用单引号以声明char类型,你需要使用'C'进行转义
大佬有話說 (3)

  • 主 資深大佬 : 122006

    大家一般是怎么拼接字符串的呢

  • 資深大佬 : cweijan

    不是很看好, 除非能像 lombok 一样被 idea 官方集成.

  • 主 資深大佬 : 122006

    @cweijan 纯自用,也没啥推广的野心,自己写的舒服炫下技术好了
    面试的时候拿来吹个牛不香么

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具