好吧,我想为我的化学游戏/项目制定一种方法:
- 取一个字符串
- 然后它将获取字符串,检查数字,如果有数字,则将其转换为同一数字的下标。
- 返回更新后的字符串
我最初的想法是将字符串转换为 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/