如何在phpstorms(基于velocity)文件模板中将字符串转换为驼峰式?

4
我尝试过的方法有:
## $NAME is something like 'my_controller_c'
#set($NAME = $NAME.removeAndHump($NAME))
#set($NAME = $NAME.underscoresToCamelCase(String)

但是那样做是行不通的。第一个没有任何效果,第二个会抛出一个Java错误。

我也尝试使用正则表达式并循环遍历字符串,但是我的Java知识非常基础。


1
  1. 你不能重新定义#NAME--你必须将其值分配给一个本地变量,然后使用它(例如#set($class = ${NAME}))。
  2. 我不知道那里有什么可用的方法...但是Java自己的String类方法确实有效:#set($class = $class.toUpperCase())
  3. 如果没有内置函数可以完成你想要的操作--也许尝试"类似"创建自己的函数:Velocity支持循环--尝试使用它们(将foo_bar拆分为foobar;大写第一个字母并连接回FooBar(只是一个想法--完全不是Velocity用户)。
- LazyOne
2个回答

13

以下内容在PhpStorm 9中可行(我猜其他JetBrains IDEs也是如此):

#set($new_name = ${StringUtils.removeAndHump(${NAME}, "-")})

class $new_name {
}

8
这是我最终所做的事情:
#set($ctrlName = $NAME.replaceAll("-c$", ""))
#set($ctrlNewName = "")
#foreach($str in $ctrlName.split("-"))
  #set($str = $str.substring(0,1).toUpperCase()+$str.substring(1))
  #set($ctrlNewName = $ctrlNewName + $str)
#end
#set ( $ctrlNewName = $ctrlNewName + "Ctrl" )

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