【问题标题】:Convert char to lower case in J2ME without using the Character class在 J2ME 中将 char 转换为小写而不使用 Character 类
【发布时间】:2011-04-12 19:02:14
【问题描述】:

我想在 J2ME 应用程序中将 char 转换为小写。通常的 Character.toLowerCase() 不适用于 J2ME 中的任意 Unicode 字符,所以我需要一些 light API,或者最好是一段代码。

谢谢!

【问题讨论】:

  • 您想将哪个字符转换为 lower ?特别是哪个范围?
  • 我为什么要详细说明?我喜欢一个通用的解决方案。 如果我这样做了,我可以自己查看 Unicode 规范。我不想重新设计轮子:一定有人写过这种通用代码。
  • 好的。官方文档说 它仅适用于 latin-iso 字符。其他字符不变。就这样。换句话说,它只为 ansi 实现。谢谢。

标签: java java-me implementation character lowercase


【解决方案1】:
char toLowerCase(char c){
    if(c>=97 && c<=122)
        return (char) (c-32);
    else
        return c;
}

【讨论】:

  • 完美。但是请告诉我,在世界上如何使用非 ASCII 字符(如 Ą、Ć、Ę、Ó、Ś...更不用说希腊文或西里尔文了)?
  • -1 问题是关于 unicode 的,你的回答只涉及 ascii。
  • 这实际上不起作用,即使对于 ASCII 也是如此。基于-32,它看起来只能转换为大写!
【解决方案2】:

基于 JavaSE JDK 中 Character 中的 toLowerCase() 方法:

char lowerChar = (char)CharacterData.of((int)upperChar).toLowerCase((int)upperChar);

您可以阅读 JDK 的源代码并了解这里的实际工作,并在 JME 中将同样的事情应用到您自己的类中。


资源:

【讨论】:

  • 这回答了问题标题,但不是问题信息。
  • @BalusC,我知道它不会像在 JME 中那样工作,我只是说最好的方法是看看它与 JSE 一起工作的方式。 (经过编辑使其更清晰)
  • 好吧,我的错。我会改变标题。当然,也有可能将一些类移植到 j2me。如果他们没有别的,可能会更容易。
【解决方案3】:

我刚刚从 Java SE 1.3 中复制了一些内容并将其包含在我的 J2ME 应用程序中。一般是Character类的几个方法和三个大数组。

【讨论】:

    猜你喜欢
    • 2018-07-28
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 2020-03-21
    • 1970-01-01
    • 2021-08-28
    • 2015-07-14
    相关资源
    最近更新 更多