黑马程序员技术交流社区

标题: 一道小题的升级版,怎么解 [打印本页]

作者: 焚雨成灰    时间: 2014-3-16 20:31
标题: 一道小题的升级版,怎么解
本帖最后由 焚雨成灰 于 2014-3-16 21:01 编辑

统计double a = 27863654.43432423(可能超范围了,没看,反正就是小数),求位值为n(n为0-9中的一个)的个数。之前做的是整型的还好,换成这个怎么做?
作者: 张贺    时间: 2014-3-16 20:46
  1. public class AddTest
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int num1=12354543;
  6.                 double num2=1235.123512112;
  7.                 System.out.println(number(num1,3));
  8.                 System.out.println(number(num2,1));
  9.         }
  10.         public static int number(Number num,int n)
  11.         {
  12.                 int sum=0;
  13.                 char[] ch=num.toString().toCharArray();
  14.                 for(int i=0;i<ch.length;i++)
  15.                 {
  16.                         if(ch[i]==(n+'0'))
  17.                         {
  18.                                 sum++;
  19.                         }
  20.                 }
  21.                 return sum;
  22.         }
  23. }
复制代码

不知道是不是这个意思
作者: 洋葱骑士    时间: 2014-3-16 20:49
String.valueOf(a) 转换为字符串,然后挨个字符查找如何?
作者: 焚雨成灰    时间: 2014-3-16 21:01
张贺 发表于 2014-3-16 20:46
不知道是不是这个意思

哈哈,大概是这个意思
作者: 王浩龙    时间: 2014-3-16 21:13
我做了一下请看如下代码,如果还有什么不明白的可以继续问
  1. import java.util.Map;
  2. import java.util.TreeMap;


  3. public class sumCount {

  4.         public static void main(String[] args) {
  5.                 double d = 27863654.43432423;
  6.                 String s = String.valueOf(d);//把double数据的类型变成字符串
  7.                 char[] ch = s.toCharArray();//把字符串变成字符数组
  8.                 Map<Character ,Integer> treeMap = new TreeMap<Character ,Integer>();//建立一个treemap
  9.                 //遍历字符数组
  10.                 for(int i=0; i<ch.length;i++){
  11.                         //比较集合中是否有这个元素,有的话把value加1在重新放回去,没有的话就设置为1
  12.                         if(treeMap.get(ch[i])==null){
  13.                                 treeMap.put(ch[i], 1);       
  14.                         }
  15.                         else{
  16.                                 treeMap.put(ch[i],treeMap.get(ch[i])+1);
  17.                         }
  18.                 }
  19.                 System.out.println(treeMap.get('2'));//最后你想得到那个数的个数,就输入想对应的字符就行了
  20.         }

  21. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2