取一个整数a从右端开始的4~7位!
大家帮忙解释一下,我一点思路也没有!

解决方案 »

  1.   

    转换成string型,截取字符串就行了
      

  2.   

    先转换为String 类型 再调用indsxOf()方法 具体的看看API
      

  3.   

    public class Test {
        
        public static void main(String[] args) {
            System.out.println(subInt(123456789, 4, 7));
            
        }    public static int subInt(int num, int left, int right) {
            if((left < 1) || (right < left)) {
                throw new IllegalArgumentException("arguments is invalid!");
            }
            return (num % (int)pow(10, right)) / (int)pow(10, left - 1);
        }    public static double pow(double base, int exponent) {
            if (exponent < 0)
                return 1 / pow(base, -exponent);
            double power = 1;
            while(exponent > 0) {
                if((exponent & 1) == 1) {
                    power *= base;
                }
                base *= base;
                exponent >>= 1;
            }
            return power;
        }
    }
      

  4.   

    参数命名错了,改一下    public static int subInt(int num, int rightStart, int rightEnd) {
            if((rightStart < 1) || (rightEnd < rightStart)) {
                throw new IllegalArgumentException("arguments is invalid!");
            }
            return (num % (int)pow(10, rightEnd)) / (int)pow(10, rightStart - 1);
        }
      

  5.   

    int a;
    a=a&0x78;
    a=a>>>3;
      

  6.   

    a = a>>> 3;
    System.out.println(Integer.toBinaryString(a));
      

  7.   

    转化为Sting然后substring4到7,如果有必要再转化成Interger
      

  8.   


    import java.util.*;
    public class SubNumber{
    public static void main(String[] args){
    Scanner sc  = new Scanner(System.in);
    System.out.println("请输入一个7位以上的数字");
    int a = sc.nextInt();
    int b = 1000000;
    if(a<b){
    System.out.println("你输入的数字没有到7位,不合要求!");
    }
    String str = a+"";//这里的作用是把int类型的转换成String类型的
    //可以用String的substring方法
    String s = str.substring(3,7);//前面的包括,后面的不包括
    int temp = Integer.parseInt(s);
    System.out.println("你要得到这个数的第4位到第7位:"+temp);
    }
    }
      

  9.   

    我认为应该是利用循环,求余的方法,截取4-7位,
    public class Intercepter{
    public static void main(String[] args){
    int a=12340567;
    int b;
    int c=4;
    //因为要截取第四位到第七位,如果把次数表小一千倍,则是第一到第四位
    a=a/1000;
    //此时,a 因该是12340
    for(int i=0;i<4;i++){
    b=a%10;
    a=a/10;
    System.out.println("第"+c+"位是"+b);
    c++;
    }
    }
    }
    大家一块讨论,我也是刚开始学习,还没一个月,希望大家多多指出我的不足之处。
    谢谢。
      

  10.   

    先转换为String 类型 再调用indsxOf()方法
      

  11.   

    楼上的方法好
    但是有个方法也的第一次见8楼的
    a = a>>> 3; 
    System.out.println(Integer.toBinaryString(a));不过好像是应为移位符很少用的缘故吧
      

  12.   

    我用的基础的方法做的...楼主可以测试下import java.util.Scanner;
    public class Left4_7 {
    public static void main(String[] args){
    System.out.println("请输入一个数:");
    Scanner sc=new Scanner(System.in);
    int x=sc.nextInt();
    int y=1,z=x,i;
    for( i=0;;i++){

    x=x/10;
    if(x==0){
    break;
    }
    y=y*10;
    }
    for(int j=i+1;j>3;j--){

    int m=z/y;
    z=z%y;
    y=y/10;
    if(j<=7&&j>=3){
    System.out.println(m);
    }

    }
    }
    }