使用字符串模板将首字母转换为大写
Convert First Letter to Capital using String Template
我正在使用字符串模板文件生成 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
method(item) ::= <<
<item.name; format="cap">Value
>>
我正在使用字符串模板文件生成 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
method(item) ::= <<
<item.name; format="cap">Value
>>