简体   繁体   English

使用字符串模板将第一封信转换为大写

[英]Convert First Letter to Capital using String Template

I am using String template file to generate java files. 我正在使用String模板文件来生成java文件。 For that i am using ANTLR. 为此我使用ANTLR。 Code for One of the string template file is shown below: 其中一个字符串模板文件的代码如下所示:

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"$
 } 

But it doesnot produce effect of format="capital" .How to incorporate such changes?Should i need to include any package or file?I am new to String Template & ANTLR. 但它不会产生format="capital"效果。如何合并这些更改?我是否需要包含任何包或文件?我是String Template&ANTLR的新手。

The format string you want to use is "cap" 您要使用的格式字符串是“cap”

format="cap"

You'll need to register the StringRenderer first, however :-) 你需要先注册StringRenderer,但是:-)

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

More detail 更多详情

Here's an example group file, testGroup.stg : 这是一个示例组文件testGroup.stg

group testGroup;

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

and here's an example of using it: 这是使用它的一个例子:

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());
    }
}

This renders: 这呈现:

HelloWorld 你好,世界

method(item) ::= <<
<item.name; format="cap">Value
>> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM