java - 通过算法将 String 中的数字更改为下标

标签 java unicode

好吧,我想为我的化学游戏/项目制定一种方法:

  • 取一个字符串
  • 然后它将获取字符串,检查数字,如果有数字,则将其转换为同一数字的下标。
  • 返回更新后的字符串

我最初的想法是将字符串转换为 char 数组,然后创建一个 for 循环,在其中尝试 Integer.parseInt(Character.toString(char array element)),如果它抛出 NumberFormatException,它将继续 for 循环。如果它没有抛出错误,那么我保留该数字,将其添加到 2080(因为\u2080 ->\u2089 是下标 unicode),然后以某种方式将该数字重新压缩为字符。

我尝试为其编写代码,但不确定如何继续。

private String processName(String original)
    {
        char[] or = original.toCharArray();

        int returned = 0;

        for(char character : or)
        {
            try
            {
                returned = Integer.parseInt(Character.toString(character));
            }

            catch (Exception e)
            {
                continue;
            }

            if(returned != 0)
            {
                returned += 2080;

                String temp = "\\u" + returned;

                //gave up here
            }
        }

    }

最佳答案

你就快到了。请记住,char 是两个字节,因此它们可以保存您想要的值:

for(int i = 0; i < or.length; i++)
{
    try
    {
        returned = Integer.parseInt(Character.toString(or[i]));
    }

    catch (Exception e)
    {
        continue;
    }

    if(returned != 0)
    {
        or[i] = (char) (returned + 2080);
    }
}

您可以通过简单地检查 char 是否是数字来消除转换为 int 的一些成本,如果是,则添加适当的数量,但由于此代码已经可以工作,我将把它留给您。

关于java - 通过算法将 String 中的数字更改为下标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16452147/

相关文章:

perl - 如何使用Perl的DBI处理unicode?

Java Web 服务/JAXB - 抽象父类(super class)

java - LWJGL 纹理加载/映射问题

java - 使用 Spring Boot 和 Hibernate 执行多个不同的查询

java - 在 Java 中将 bytes 转换为 String 时会发生什么?

python - 获取 Python 可以编码的所有编码的列表

java - JHipster Liquibase 警告 SSL Mysql

java - 将 PayPal curl 请求转换为 Java 中的 http 请求

python - 使用 Unicode 显示特殊字符

css - 使用 Unicode 补充多语言平面符号创建 webfont