首页 > 编程语言 >Java: The number of bits of an integer is solved

Java: The number of bits of an integer is solved

时间:2023-03-19 09:44:42浏览次数:38  
标签:Java String int isOk number boolean return bits

/**
 * 版权所有 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;
    }


}

  

标签:Java,String,int,isOk,number,boolean,return,bits
From: https://www.cnblogs.com/geovindu/p/17232484.html

相关文章

  • Java中的finally一定会被执行吗?
    肯定不是。首先,如果程序连try块都执行不到,那么finally块自然就不会执行到了。有两个场景:在执行try块之前直接return在执行try块之前制造一个错误只要进入try块,不管......
  • Java Web中端口被占的问题
    使用win+r打开命令行,输入下列代码查询被占用的端口netstat-ano|findstr8080 发现该端口被PID(进程ID)为20792的进程占用。打开任务管理器,点击详情信息,找到并结束该......
  • Java synchronized的实现原理
    通常在多线程执行的过程中,我们需要考虑一些线程安全的问题,而线程安全问题中最常用的解决策略之一就是“锁”。加锁的本质,就是为了解决在多线程场景中对于共享数据访问的......
  • java学习日记20230317-多态
    多态方法和对象爱过你具有多种形态,是面向对象的第三大特征,多态是建立在封装和继承的基础上;方法的重载体现多态方法的重写体现多态对象的多态一个对象的编译类型和......
  • java学习第一天
    java学习第一天第一个代码helloworld用cmd指令编译和运行Java文件Javac加Java文件名,编译javac编译文件会生成class文件Java运行class文件(无后缀)java程序运行机......
  • jlink打包javaFX应用和引用第三方库处理
    操作环境说明:操作系统:windows11(linux也可以参考本文操作)jdk版本:openjdk-17+35(理论上jdk9之后都可以按本文操作,具体是否可行,未验证)javaFX版本:javafx-sdk-17.0.2本......
  • 给我说说你对Java GC机制的理解?
    JVM的运行数据区方法区不止是存“方法”,而是存储整个class文件的信息,JVM运行时,类加载器子系统将会提取class文件里面的类信息,并将其存放在方法区中。例如类的名称、类......
  • 用Java代码验证三门问题
    三门问题(MontyHallproblem)亦称为蒙提霍尔问题,出自美国的电视游戏节目Let'sMakeaDeal。问题名字来自该节目的主持人蒙提·霍尔(MontyHall)。参赛者会看见三扇关闭......
  • JavaScript 数据类型详解
    原文链接:​   ​​https://note.noxussj.top/?source=51cto​​常见的ES5数据类型分为基本数据类型、引用数据类型两种。包含字符串、数字、对象、数组、函数、布尔值......
  • 你说你精通Java并发,那给我讲讲J.U.C吧
    J.U.C即java.util.concurrent包,为我们提供了很多高性能的并发类,可以说是java并发的核心。Concurrent包下所有类底层都是依靠CAS操作来实现,而sun.misc.Unsafe为我们提供了......