Hug*_*ata 6 java regex code-generation
对于我正在处理的代码生成工具,我需要获取一个字符串并从中生成一个有效的java变量名,但我不确定最好的方法.
例如:
"123 this is some message !"=> _123_this_is_some_message(或类似的东西)
谢谢
ass*_*ias 10
假设你用_下面的代码替换所有无效字符可以工作(粗略的例子).您可能希望为名称冲突等添加一些逻辑.它基于JLS#3.8:
标识符是无限长度的Java字母和Java数字序列,第一个必须是Java字母.
[...]
"Java letter"是Character.isJavaIdentifierStart(int)方法返回true的字符.
"Java letter-or-digit"是Character.isJavaIdentifierPart(int)方法返回true的字符.
public static void main(String[] args) {
String s = "123 sdkjh s;sdlkjh d";
StringBuilder sb = new StringBuilder();
if(!Character.isJavaIdentifierStart(s.charAt(0))) {
sb.append("_");
}
for (char c : s.toCharArray()) {
if(!Character.isJavaIdentifierPart(c)) {
sb.append("_");
} else {
sb.append(c);
}
}
System.out.println(sb);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3728 次 |
| 最近记录: |