Java: The number of bits of an integer is solved

/**
 * 版权所有 2022 涂聚文有限公司
 * 许可信息查看:
 * 描述: 1-100 累加值 但要求跳过所有包含有3的数
 * 公用类库 公共所需要用的操作函数或方法
 *
 * 历史版本: JDK 8.01
 * 2023-03-12 创建者 geovindu
 * 2023-03-12 添加 Lambda
 * 2023-03-12 修改:date
 * 接口类
 * 2023-03-12 修改者:Geovin Du
 * 生成API帮助文档的指令:
 *javadoc - -encoding Utf-8 -d apidoc IntegerDigitControl.java
 * Interface
 * Record
 * Annotation
 * Enum
 * */

package Geovin.Du.Common;

import java.util.LinkedList;
/**
 *整数位数的操作的类
 * @author geovindu  涂聚文
 * @version 1.0
 *
 */
public class IntegerDigitControl {

    /**
     * 判断是否含有数字3
     * @param number 输入参数 整数
     * @return 返回是否含3的数
     */
    public boolean  isThreeNumber(int number)
    {
        boolean isOk=false;
        if(number<=100&&number>0)
        {
            int ge=number%10;
            int shi=(number%10)/10;
            int bai=number/100;
            if(ge==3||shi==3||bai==3)
                isOk=true;
        }
        return  isOk;
    }

    /**
     * 判断是否含有指定的数字
     * @param number 输入参数 整数
     * @param num 指定的数字
     * @return
     */
    public boolean  isThreeNumber(int number,int num)
    {
        boolean isOk=false;
        if(number<=100&&number>0)
        {
            int ge=number%10;
            int shi=(number%10)/10;
            int bai=number/100;
            if(ge==num||shi==num||bai==num)
                isOk=true;
        }
        return  isOk;
    }

    /**
     * 获取字符串数组并将其拆分的方法
     * @param number  输入参数 整数
     * @return
     */
    public boolean  isSplitNumber(int number)
    {
        boolean isOk=false;
        if(number<=100&&number>0)
        {

            String strNumber = String.valueOf(number);

            String[] digits = strNumber.split("(?<=.)");
            String digit="";
            for(int i = 0; i < digits.length; i++) {
                //System.out.println(digits[i]);
                digit=digits[i];
                if(digit.equals("3"))
                    isOk=true;
            }

        }
        return  isOk;
    }

    /**
     * 获取字符串数组并将其拆分的方法
     * @param number 输入是1至100的整数
     * @param num 指定的数字  之外
     * @return
     */
    public boolean  isSplitNumber(int number,int num)
    {
        boolean isOk=false;
        String strNum=String.valueOf(num);
        if(number<=100&&number>0)
        {

            String strNumber = String.valueOf(number);

            String[] digits = strNumber.split("(?<=.)");
            String digit="";
            for(int i = 0; i < digits.length; i++) {
                //System.out.println(digits[i]);
                digit=digits[i];
                if(digit.equals(strNum))
                    isOk=true;
            }

        }
        return  isOk;
    }

    /**
     *%(mod)获取给定整数的余数 使用余数方法获得整数的每一个数字
     * @param number 输入参数 整数
     * @return 返回是否含指定的3数字
     */
    public boolean  isModNumber(int number)
    {
        boolean isOk=false;
        if(number<=100&&number>0)
        {


            LinkedList<Integer> stack = new LinkedList<Integer>();
            while(number > 0){
                stack.push(number % 10);
                number = number / 10;
            }
            while ((!stack.isEmpty())){
                String digit="";
                //System.out.println(stack.pop());
                digit=String.valueOf(stack.pop());
                if(digit.equals("3"))
                    isOk=true;
            }

        }
        return  isOk;
    }

    /**
     *使用余数方法获得整数的每一个数字
     * @param number 输入参数 整数
     * @param num 指定的数字
     * @return 返回是否含指定的数字
     */
    public boolean  isModNumber(int number,int num)
    {
        boolean isOk=false;
        if(number<=100&&number>0)
        {


            LinkedList<Integer> stack = new LinkedList<Integer>();
            while(number > 0){
                stack.push(number % 10);
                number = number / 10;
            }
            while ((!stack.isEmpty())){
                String digit="";
                //System.out.println(stack.pop());
                digit=String.valueOf(stack.pop());
                if(digit.equals(String.valueOf(num)))
                    isOk=true;
            }

        }
        return  isOk;
    }

    /**
     *使用字符串的 toCharArray() 得到字符数组
     * @param number 输入参数 整数
     * @return 返回是否含指定的3数字
     */
    public boolean  isCharArrayNumber(int number)
    {
        boolean isOk=false;
        if(number<=100&&number>0)
        {

            String strNumber = String.valueOf(number);
            char[] digits = strNumber.toCharArray();
            String digit="";
            for(int i = 0; i < digits.length; i++) {
                digit=String.valueOf(digits[i]);
                if(digit.equals("3"))
                    isOk=true;
            }

        }
        return  isOk;
    }

    /**
     * 使用字符串的 toCharArray() 得到字符数组
     * @param number 输入参数 整数
     * @param num 指定的数字
     * @return 返回是否含指定的数字
     */
    public boolean  isCharArrayNumber(int number,int num)
    {
        boolean isOk=false;
        if(number<=100&&number>0)
        {

            String strNumber = String.valueOf(number);
            char[] digits = strNumber.toCharArray();
            String digit="";
            String strNum=String.valueOf(num);
            for(int i = 0; i < digits.length; i++) {
                digit=String.valueOf(digits[i]);
                if(digit.equals(strNum))
                    isOk=true;
            }

        }
        return  isOk;
    }
    /**
     * 用取余方法
     * @param number 输入的数字
     * @return 返回是否含3的数字
     */
    public boolean  isThreeNumberOne(int number)
    {
        boolean isOk=false;
        int a=0;
        int b=0;
        if(number<=100&&number>0)
        {

            while (number != 0) {
                b = number % 10;
                a =number / 10;
                if(a==3||b==3)
                    isOk=true;
            }

        }
        return  isOk;
    }

    /**
     * 递归方法 使用递归法从整型数中分离数字
     * @param number
     * @return
     */
    public  boolean recursion(int number) {
        boolean isOk=false;
        if(number<=number&&number > 0) {
            recursion(number/10);
            int n=number%10;
            if(n==3)
                isOk=true;
        }
        return  isOk;
    }

    /**
     * 递归方法 使用递归法从整型数中分离数字
     * @param number 输入的数字
     * @param num  指定包含的数字
     * @return
     */
    public  boolean recursion(int number,int num) {
        boolean isOk=false;
        if(number<=number&&number > 0) {
            recursion(number/10);
            int n=number%10;
            if(n==num)
                isOk=true;
        }
        return  isOk;
    }
    /**
     * 递归方法 使用递归法从整型数中分离数字
     * @param number 输入的数字
     * @param maxNumber 输入的数字的最大数
     * @return 返回是否位数上有含3的数字否
     */
    public  boolean recursionMax(int number,int maxNumber) {
        boolean isOk=false;
        if(number<=maxNumber&&number > 0) {
            recursion(number/10);
            int n=number%10;
            if(n==3)
                isOk=true;
        }
        return  isOk;
    }


}

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章