来了来了,完整支持 [ Java 内插字符串] 语法的插件来了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
122006

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

  •  
  •   122006 2021 年 6 月 24 日 1616 次点击
    这是一个创建于 1767 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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\'进行转义
    122006
        1
    122006  
    OP
       2021 年 6 月 24 日
    大家一般是怎么拼接字符串的呢
    cweijan
        2
    cweijan  
       2021 年 6 月 25 日
    不是很看好, 除非能像 lombok 一样被 idea 官方集成.
    122006
        3
    122006  
    OP
       2021 年 6 月 25 日
    @cweijan 纯自用,也没啥推广的野心,自己写的舒服炫下技术好了
    面试的时候拿来吹个牛不香么
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     911 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 19:36 PVG 03:36 LAX 12:36 JFK 15:36
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86