2

如果我有一个语法正确的 field_name。我想通过使用空间来分隔它。

例如,

  1. field_name 是CylinderConfiguration,我希望它像Cylinder Configuration
  2. field_name 是NoofCylinders,我希望它像No of Cylinders

请注意大写不是字符串中可识别的字符,整个字符串可能很小。

有没有办法做到这一点?

4

2 回答 2

5

有没有办法做到这一点?

是的。
此外,总是有不止一种方法可以做到这一点。其他数千个示例中的一个示例是可以拆分为或
的域名。expertsexchangeexperts exchangeexpert sex change

我建议不要为像打印字段名称这样的琐碎任务实现这种人工智能,而是将它们保持原样用于自动化目的,就像 PHPmyAdmin 所做的那样,或者在您的代码中创建一个硬编码的替换表。它将为您节省大量时间来完成这样一个琐碎的任务。

有人可能会建议您将命名约定更改为下划线作为单词分隔符的方式,这可以很容易地转换为空格,但我建议您不要这样做。数据库表名不打算在用户界面中使用。不要偷懒,手动创建输出字段名称。

于 2012-04-22T08:12:39.580 回答
1

你可以通过使用字典来做到这一点/usr/share/dict/words(或者只是下载一个单词列表)。

伪代码中的算法将如下所示:

counter = 0
make input lowercase
loop i from 0 to length of input:
    if sub string from 0 to i of input is in dictionary:
        grammatical_words[counter] = sub string from 0 to i
        add one to counter

echo all words from grammatical_words

这样做的缺点是任何以 a 或 i 开头的字符串基本上都会失败 - 一个类似的字符串algorithm将被拆分a,然后没有进一步的匹配。这意味着如果您确信自己不使用某些单词,则需要禁止使用它们。此外,复合词如oftenordesktop不会具有预期的行为。词根中有单词的单词,例如“平板电脑”、“手机”、“流行”等,也会失败。

通过一些调整,这可能会起作用。如果您知道使用哪些单词来加快速度并避免误报,我会制作一个自定义单词列表而不是使用系统词典。

于 2012-04-22T12:16:39.700 回答