1

好的,我想为我的化学游戏/项目制作一个方法,它可以:

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

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

我试图为它编写代码,但不知道如何继续。

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
            }
        }

    }
4

1 回答 1

1

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

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);
    }
}

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

于 2013-05-08T23:57:18.450 回答