在Velocity或IntelliJ文件模板中将驼峰式字符串转换为蛇形或破折号分隔符。

4
我想在使用Apache Velocity的IntelliJ文件模板中将驼峰式命名的字符串(如"RoomAvailability")转换为"dash cased"字符串(如"room-availability")。我已经找到了很多关于从蛇形命名到驼峰式命名的帖子,比如使用#set($name = ${StringUtils.removeAndHump("room_availability")})可以得到RoomAvailability。另一个可能性是将驼峰式命名转换为蛇形命名,然后通过#set($replaced = ${snake_cased_name("_", "-")})将下划线'_'替换为连字符'-',但我还缺少一个将字符串转换为蛇形命名的方法。在IntelliJ文件模板中或者Velocity中是否有相应的方法来实现这种转换?
1个回答

18

我找到了一个解决方案。它不像一个现成的函数那样优雅,但是它确实有效。

#set( $regex = "([a-z])([A-Z]+)")
#set( $replacement = "$1-$2")
#set( $toDash = $NAME.replaceAll($regex, $replacement).toLowerCase())
...
${toDash}

感谢 JetBrains 的 Elena Pogorelova 在此帖中的分享。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接