【发布时间】:2011-11-18 10:34:53
【问题描述】:
我需要转换任意字符串:
- 带空格的字符串
- 100stringsstartswithnumber
- 字符串€with%special†characters/\!
- [空字符串]
到一个有效的 Java 标识符:
- string_with_spaces
- _100stringsstartswithnumber
- string_with_special_characters___
- _
这个任务有现成的工具吗?
有这么多 Java 源代码重构/生成框架,人们会认为这应该是相当普遍的任务。
【问题讨论】:
-
您是否希望在运行时动态执行此操作?如果是这样,那是行不通的。你需要
Map<String,Object>或其他东西才能做到这一点。 -
@glowcoder 是的,我需要一个实用方法来在运行时执行此操作。请说明为什么我需要使用
Map? -
因为在运行时没有动态映射到变量。你能做的最好的就是使用反射。老实说,如果有,则表明设计决策不佳。你为什么想做这样的事情?通常有更好(更安全!)的方法来做到这一点。
-
@glowcoder 也许我没有足够清楚地描述我想要做的事情。我不做什么“在运行时动态映射到变量”。我要做的就是将字符串转换为另一个保证符合 Java 标识符命名规则的字符串(没有空格,不要以数字开头等)。 Elipse 的 'Extract to constant' 重构选项仅适用于字符串和数字。我正在寻找一种实用方法,我可以在我的应用中使用它来做类似的事情。
-
我猜hibernate类ImprovedNamingStrategy做了类似的事情。
标签: java string code-generation identifier