Java 将实字符串整数(例如“三十五”)转换为整数
有没有办法将英文Java 将实字符串整数(例如“三十五”)转换为整数,java,Java,有没有办法将英文字符串表示的整数(例如“一百八十”)转换为整数?正如预期的那样,Integer.parseInt(“三十五”)抛出了一个NumberFormatException。Java中是否有内置函数来执行此操作?尝试将字符串按空格分隔,然后将每个单词替换为对应的数字 public int getNumber(String str) { int number = 0; String[] parts = str.split(" "); for (String number
字符串
表示的整数(例如“一百八十”)转换为整数?正如预期的那样,Integer.parseInt(“三十五”)
抛出了一个NumberFormatException
。Java中是否有内置函数来执行此操作?尝试将字符串按空格分隔,然后将每个单词替换为对应的数字
public int getNumber(String str)
{
int number = 0;
String[] parts = str.split(" ");
for (String number : parts)
{
if (numbers.contains(number)
{
number += parts.get(number);
}
}
return number;
}
public int getNumber(String str)
{
int number = 0;
String[] parts = str.split(" ");
for (String number : parts)
{
if (numbers.contains(number)
{
number += parts.indexof(number);
}
}
return number;
}
您可以拥有一张带有单词和数字的地图。否。
不,没有内置的功能来实现这一点
1。方法:HashMap
您可以使用HashMap来存储字符串、整数对(例如:“二十”和20)
2。方法:ArrayList
您可以创建一个ArrayList,如
ArrayList<String> numbers = new ArrayList<String>;
numbers.add("zero");
numbers.add("one");
...
numbers.add("eight");
numbers.add("nine");
numbers.add("ten");
...
另请参见
否,没有此功能的内置信息。相反,您可以创建自己的映射并手动解析字符串,或者在网上搜索此类实现。这里有一些关于反向算法的有趣讨论:也许这可以帮助您开始。我会投票以重复方式关闭,但另一个也是closed@1337我认为您的ArrayList实现有问题,但我不能对你的回答发表评论。对于输入“一百八十”,它将返回“10080”,不是吗?你完全正确,ArrayList实现有缺陷是的,这就是为什么我也包括HashMap实现:)@1337然后删除它,只留下另一个:)我不想编辑该部分,因为这是另一个有趣的方法,我喜欢使用索引的想法,因为它也可以用于其他一些事情:)
public int getNumber(String str)
{
int number = 0;
String[] parts = str.split(" ");
for (String number : parts)
{
if (numbers.contains(number)
{
number += parts.indexof(number);
}
}
return number;
}