import java.util.*;
public class Test {
  punlic static void main (String[]args){
     int custNO;//客户会员号(说明:customer指客户)     //输入会员卡号
     System.out.println ("请输入四位会员卡号:");
     Scanner input = new Scanner(System.in);
     custNO = input.nextInt();     //获得每位数字(**我就是这个步骤不明白,希望高手帮忙解答一下,谢谢)
     int gewei = custNO % 10 ; //分解获得个位数
     int shiwei = custNO /10 %10 ; //分解获得十位数
     int baiwei = custNO /100 %10 ;//分解获得百位数
     int qianwei = custNO /1000 ; //分解获得千位数(*为什么千位数只需要除以1000就可以,而不用 %10呢?)
     
     //计算数字之和     int sum = gewei + shiwei + baiwei + qianwei ;
     System.out.println ("会员卡号"+custNO +"各位之和:" + sum );   }
}这是书上的一个例子。需求是:
商场推出幸运抽奖活动,抽奖规则是,客户的四位会员卡号的各个位上的数字之和大于20,则为幸运客户。==================================================我想知道的是:怎么可以比较简单,通俗的去理解分解4位数的每个数字?

解决方案 »

  1.   

    输入确定是字符串
    Integer.valueOf(inputstr[0]) 这样直接拿到不就可以了?
      

  2.   

    a/b是除
    a%b是取余
    千位
    例如
    4444/1000=4
    百位
    4444/100=44得到是千位和百位的数
    当然还要取余
    44%10=4
      

  3.   

    int gewei = custNO % 10 ; //分解获得个位数
         int shiwei = custNO /10 %10 ; //分解获得十位数
         int baiwei = custNO /100 %10 ;//分解获得百位数  
         int qianwei = custNO /1000 ; //分解获得千位数理解这个, 234/100 这是取整,2是所求,34是余数  而%是取余数,则234%100得34自己看看书,在写几个小例子,理解了就会了
      

  4.   


    String inputstr = "1234";
    System.out.println(Integer.valueOf(String.valueOf(inputstr.charAt(0))));
      

  5.   

    变化个角度,可以将其转换为字符串,然后取出每一位。再将各个字符转换为int。
    public static void main (String[]args){
         String   custNO=null;//定义为字符串类型。
         int sum=0;
         //输入会员卡号
         System.out.println ("请输入四位会员卡号:");
         Scanner input = new Scanner(System.in);
         custNO = input.nextLine();
         for (int i = 0; i <custNO.length(); i++) {
    sum+=custNO.charAt(i)-48;
    }
         if (sum>20) {
          System.out.println("你是幸运客户!!!!");
          System.out.println ("会员卡号"+custNO +"各位之和:" + sum );
    }else {
    System.out.println("很遗憾!!!");
    }    }
      

  6.   

    import java.util.*;
    public class Test {
      punlic static void main (String[]args){
         int custNO;//客户会员号(说明:customer指客户)     //输入会员卡号
         System.out.println ("请输入四位会员卡号:");
         Scanner input = new Scanner(System.in);
         custNO = input.nextInt();     if (custNo > 1000){
          //获得每位数字(**我就是这个步骤不明白,希望高手帮忙解答一下,谢谢)
          int gewei = custNO % 10 ; //分解获得个位数 1001 %10  ==1
           int shiwei = custNO /10 %10 ; //分解获得十位数 //1234 /10 % 10 = 123 %10 =3 (1234 /10 = 123.4 % 10 )
          int baiwei = custNO /100 %10 ;//分解获得百位数
          int qianwei = custNO /1000 ; //分解获得千位数(*为什么千位数只需要除以1000就可以,而不用 %10呢?)
          //2093 / 1000 = 2.093 ,因为 qianwei是整形 ,jvm自动转型 int 所以得到 2
         
         }
         //计算数字之和     int sum = gewei + shiwei + baiwei + qianwei ;
         System.out.println ("会员卡号"+custNO +"各位之和:" + sum );   }
    }
      

  7.   

    //获得每位数字(**我就是这个步骤不明白,希望高手帮忙解答一下,谢谢)
         int gewei = custNO % 10 ; //分解获得个位数
         int shiwei = custNO /10 %10 ; //分解获得十位数
         int baiwei = custNO /100 %10 ;//分解获得百位数
         int qianwei = custNO /1000 ; //分解获得千位数(*为什么千位数只需要除以1000就可以,而不用 %10呢?)
    千位%10也没什么意义,因为对于4位数来说,千位的时候就只剩下1位数了,1位数%10还是等于1位数本身

    0到9 % 10 还是 0到9本身
    而分解百位数的时候,因为4位数除以100,还剩下2位数(比如4532/100=45,小数被舍掉),所以必须要%10才能得到2位数的最后1位数,同理,是位数分解也是一样