Java,Android - 如何将字符串转换为数字?
我正在开发一个应用程序,用户将使用语音进行交互。每当用户说第一,第二,第三等..我需要将字符串“第一”转换为int 1,字符串“second”转换为int 2.Java,Android - 如何将字符串转换为数字?
到目前为止,我发现的是(Java-Android How to convert letters in a string to specified number),转换每个字母串中的每个字母分别给相应的数字然后返回一些数字。但我不是我所需要的。我很困难。任何帮助,将不胜感激。
如果定义与所有这些串主教名单,那么你可以使用的indexOf,让你正在寻找的价值,但仔细考虑空元素: 使用一个null-基数元素添加到列表或添加1至指数值
List<String> cardinal = Arrays.asList("first", "second", "third", .. etc);
System.out.println(cardinal.indexOf("first") + 1);
没有确切的方法可以这样做。但得到的功能得到完成u可以使用开关箱 例如: -
switch(WordNumber) {
case First:
System.out.println(1);
return 1;
break; // optional
case Two:
System.out.println(2);
return 2;
break; // optional
// You can have any number of case statements.
default : // Optional
// Statements
}
好的解决方案,因为OP在你的答案后评论说没有具体的限制,我会说答案仍然有效! – AxelH
我猜你至少有一些获取字符串值的方法是什么?
如果数字相对较小(〜10),那么hashmap可以做到这一点。只要事先手动保存并通过字符串查找它们。
HashMap<String, Integer>
如果你有一个更大的列表(〜100),你将有一个方法将传入的int分成子数。因此,在这种情况下,您会查看十个值并将其与后值结合使用。
2 = Second
22 - Twenty-second
52 - Fifty-second
您将需要拆分接收的值,以分析每个步骤。既然你没有有限的价值,你将需要为每个数字创建一张地图......这太多了。
所以才创造这样:
{ "one", "two", "three", ... "nine" }
{ "ten, "twenty", "thirteen", ... "nineteen"}
.. hundreds
.. thousands
.. specific case for eleven, twelves, ...
然后,你需要西港岛线由劈裂它来分析价值像"twenty two"
和搜索每个对应。
twenty = index 1 of tens array => (1 + 1) * 10 = 20
two = 2 => index 1 in unit array => 1 + 1 = 2
20 + 2
22
当然,这需要多思考一下,但这会给你一个很好的系统来读取每一个可能的数字。
这里没有内置的API。你将不得不完全自己写。你需要多少数字?如果它相对较小,一张简单的地图就可以做到。 –
感谢您的回复,我知道没有内置的API。我没有多少数量可能增长。 – coders
可能的重复http://stackoverflow.com/questions/4062022/how-to-convert-words-to-a-number – opatut