2013-06-04 16 views
0

我必须在int中将int 1转换为字符串'one',2转换为'two'等等,是否有人可以解释我如何在Java中做到这一点。可能吗?在将int 1转换为字符串'one',2转换为'two'等问题中存在问题

+0

制作一个包含swtich的方法并相应地返回所需的字符串。 – Smit

+0

不,这是不可能的(讽刺)。 –

+0

已经有类似的问题 - http://stackoverflow.com/questions/3299619/algorithm-that-c​​onverts-numeric-amount-into-english-words –

回答

1

是的。从零开始,最下面的二十一个数字有个别名称,然后有模式高达几百,千,百万,等等。

+0

要添加到此,特殊情况下0.从那里,如果需要包括一个否定。将数字拆分为三个组,并使用特殊情况构建这些数字。然后使用log10s来找出数字的基数,应用正确的结尾(千,百万,十亿)。 例如:127233. - >一万二千七千二百三十三。 – 2013-06-04 17:10:54

+0

@传奇好点。编辑。我会对您的评论+1,但由于某种原因,我最近无法从此浏览器执行此操作......或者确认我已浏览过评论。 – CPerkins

1
String[] strArr = {"zero","one","two"}; 

String one = strArr [1]; 
+1

20亿元后... – 2013-06-04 17:04:59

0

当然,但没有什么神奇的方式让它工作,所以你必须手动编写所有的代码。

的一种方法是简单地写一个开关/ case子句返回经转换的值,因为这样的:

public static String convertNumber(int i) { 
    switch(i) { 
     case 1: 
      return "one"; 
     case 2: 
      return "two"; 
     } //etc 
} 

另一种方法是将其全部添加到地图和使用的是,作为这样的:

Map<Integer, String> numbersMap = new TreeMap<Integer,String>(); 
numbersMap.add(1, "one"); 
numbersMap.add(2, "two"); //etc 

,然后使用以下方法来获得所需的字符串:

numbersMap.get(int); 

而且,看到this为“全部”号码的一般解决方案。

+1

如果你使用'return',那么'break'没有任何意义... – Smit

+0

@Smit谢谢 - 我的自动模式显然踢了.. – ddmps

+0

我可以使用开关或地图,但我正在尝试将数字转换为文字格式的任何通用方法,因为我可能必须以百位显示数字。谢谢。 – user442928