【问题标题】:How to Convert Upper case string to Camel Case and keeping the Acronyms as it is?如何将大写字符串转换为骆驼大小写并保持首字母缩写词不变?
【发布时间】:2018-06-18 19:30:17
【问题描述】:

我正在研究 H2 DB 并尝试创建一个 Java 函数来将大写字符串转换为我的数据集的 Camelcase。虽然,我是 JAVA 的新手,但经过一番研究,我能够得出以下解决方案。

DROP ALIAS toCamelCase if exists;
CREATE ALIAS toCamelCase AS $$
String toCamelCase(String s)
{ 
   String[] parts = s.split("\\s+");
   String camelCaseString = "";
   for (String part : parts)
   {
      if(part != null && part.trim() != "")
      {
        camelCaseString = camelCaseString + part.substring(0, 1).toUpperCase() + part.substring(1).toLowerCase() + " ";
      }
   }
   return camelCaseString;
} $$;

现在这确实解决了我 95% 的问题,但问题是数据集中有一些元素是首字母缩写词或缩写形式,例如:FTETBB 由于此代码正在转换为 FteTbb。我能否获得相同的结果,但这次为我正在处理的数据字符串保留首字母缩写词或缩写形式的原始形式?

感谢您的帮助!

【问题讨论】:

  • 没有一些首字母缩略词字典是不可能的。即便如此,也很难识别一个恰好是首字母缩略词的词。
  • 我同意!我想创建一个这样的首字母缩写词的查找,但那将是大量的手动工作。

标签: java string h2 camelcasing


【解决方案1】:

如果您想防止首字母缩略词被更改,请创建一个单独的 .txt 文件,其中包含 已知 个首字母缩略词的列表。然后你可以通过简单地这样做来防止它被改变:

try (BufferedReader br = new BufferedReader(new FileReader(file))) {
    String line;
    while ((line = br.readLine()) != null){
        if (part == line)
            break;
        else
            camelCaseString = camelCaseString + part.substring(0, 1).toUpperCase() + part.substring(1).toLowerCase() + " ";
    }
}

将其替换为 for each 循环的内容。

记得将“file”设置为包含 .txt 文件的 File 对象。

【讨论】:

    猜你喜欢
    • 2014-10-30
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2014-02-04
    • 2015-08-07
    • 2015-07-28
    相关资源
    最近更新 更多