在算法上将String中的数字更改为下标

时间:2013-05-08 23:54:59

标签: java unicode

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

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

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

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

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

    }

1 个答案:

答案 0 :(得分:1)

你快到了。请记住,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);
    }
}

您可以通过简单地检查int是否为数字来消除转换为char的部分费用,如果是,则添加适当的金额,但由于此代码已经工作我会把它留给你。