java - 使用字符串模板将首字母转换为大写

标签 java antlr4 stringtemplate-4

我正在使用字符串模板文件生成 java 文件。为此,我正在使用 ANTLR。其中一个字符串模板文件的代码如下所示:

package framework;
public abstract class  Listener$GUIdriver.name$  {  
 $GUIdriver.commands:{ command |   
     public abstract void onNew$command.name;format="capital"$Command
           ($command.allParameter:{ param |   $param.type.name$ newValue};separator=" , "$);   
          }; separator="\n"$
$GUIdriver.allDataAccess:{ dataAccess | 
  public abstract void onNew$dataAccess.dataAccessName;format="capital"$Request(String request); 
     }; separator="\n"$
 } 

但它不会产生 format="capital" 的效果。如何合并此类更改?我需要包含任何包或文件吗?我是字符串模板和 ANTLR 的新手。

最佳答案

您要使用的格式字符串是“cap”

format="cap"

不过,您需要先注册 StringRenderer :-)

stGroup.registerRenderer(String.class, new StringRenderer());

更多详情

这是一个示例组文件,testGroup.stg:

group testGroup;

test(text) ::= <<
<text; format="cap">
>>

这是一个使用它的例子:

import org.stringtemplate.v4.*;

public class Test {

    public static void main(String[] args) {
        STGroup stGroup = new STGroupFile("testGroup.stg");
        ST st = stGroup.getInstanceOf("test");
        stGroup.registerRenderer(String.class, new StringRenderer());
        st.add("text", "helloWorld"); // note lower case 'h'
        System.out.println(st.render());
    }
}

这呈现:

HelloWorld

关于java - 使用字符串模板将首字母转换为大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33034273/

相关文章:

java - Struts 应用程序中的 NullPointer 异常

java - JSF 2 : Facelets composition (template) not rendered for error-page

java - 如何以编程方式启用侧音/麦克风直通

antlr4 - 处理 Antlr 中的关键字冲突

testing - Windows7 上的 Antlr4 - 当使用 -gui 开关调用 TestRig 时,解析树检查器不会弹出

antlr4 - 从 Antlr4 Listener 生成特定的警告/错误消息

stringtemplate-4 - 无法捕获 StringTemplate 4 中的 STException

java - stringtemplate4 获取 "Anonymous()"作为输出

c# - 在 StringTemplate 4 中使用逗号作为列表分隔符

java - Apache POI——将数据插入特定列/行和工作表 EXCEL w/Java