/**吸血鬼数字是指数为偶数的数字,可以由一对数字相乘得到,而这对数字各包含乘机的一半位数的数

 * 字,其中从最初的数字中选取的数字可以任意排序。以两个0结尾的数字不允许的。*/

publicclass Vampire {

     publicstaticvoid main(String[]args){

        int i_val;//吸血鬼数字

        String[]ar_sta1,ar_sta2;//将吸血鬼数字转化成字符串

        int num = 0;//记录吸血鬼数字的个数

        for(inti=10;i<100;i++){

            for(int j = i+1;j<100;j++){

//两层for循环将所有两位数数找出

               i_val = i*j;

               if(i_val>1000&&i_val<9999){

//判断吸血鬼数字是否是四位数

                   ar_sta1 =String.valueOf(i_val).split("");//将吸血鬼的四位数转化成字符串

                   ar_sta2 =(String.valueOf(i)+String.valueOf(j)).split("");//将吸血鬼的两位相乘的数转化成字符串

                   java.util.Arrays.sort(ar_sta1);//将刚转化成的数字进行排序

                   java.util.Arrays.sort(ar_sta2);

                   if(java.util.Arrays.equals(ar_sta1,ar_sta2)){

//判断字符串数组是否相等

                      num++;

                      System.out.println(""+num+"个吸血鬼数字是"+i+"*"+j+"="+i_val);

                   }

                   

               }

            }

        }

        System.out.println("一共有"+num+"个吸血鬼数字");

       }

}

String.valueOf();将其他任何类型转化成字符串类型

String.split(“”);将字符串分离成一个字母组成的字符串

其参数是可以变化的若string.split(“:”);表示将字符串以:为标准将字符串分成不含:的小字符串。

a.equals(b);是比较的两个引用

java.util.Arrays.equals(a,b)比较的是ab 的两个数组的个数以及数组的元素是否相等。