随便写写写~

按位异或:符号(^)对于两个二进制数,相同位为0,不同位为1。例如:0010^0011结果为0001

        int b=0;
        for(int a:A){
            b^=a;
        }
        return b;
//此代码可以找出数组A中只出现一次,其余元素都出现两次的元素。

按位与:符号(&)对于两个二进制数,对应位都为1则为1,对应位只要有一个0结果就为0。例如:1101&0100结果为0100。

num=num&(num-1);
//将二进制num中最右边的1变为0。不断循环这个操作可以将num变为0。
二进制左移:

将二进制的所有数向左移动一定的位数,右边空出来的补0。

例如:1010左移两位得到101000。1010的十进制数是10,101000的十进制数是40。左移一位相当于原数乘以2,左移两位相当于乘以四。

二进制右移:

将二进制的所有数向右移动一定的位数,对于无符号的,左边空出来的补0。对于有符号的左边空出来的用符号位(最高位)填充。

例如:无符号数10101010右移两位得到00101010。10101010的十进制数是170,00101010的十进制数是42,右移一位相当于除二(向下取整)。右移两位相当于除四。

           有符号数10101010(1表示负数)右移两位得到11101010。因为有符号的二进制数右移,符号位的复制会导致数值变化规律不同于无符号数简单的除法规律。

Math.pow(2,3);      函数是运算2的3次方等于8。

        //通过此代码可以实现在没有第三介质的情况下交换数组AB的第0和第1的值。


        //AB[0]=1         0001
        //AB[1]=2         0010


        AB[0]=AB[0]^AB[1];    // 0011=3
        AB[1]=AB[0]^AB[1];    // 0001=1
        AB[0]=AB[0]^AB[1];    // 0010=2
        

        

求两个数中的最大数:

max = (a + b + Math.abs(a - b)) / 2;

//Math.abs()函数是求绝对值函数
//当a>b时a—b的绝对值=a—b,所以max=(a+b+a-b)/2等于a
//当a<b时a-b的绝对值=b-a,所以max=(a+b+b-a)/2等于b
字符串分割方法split():
import java.util.Arrays;

public class demo01 {
    public static void main(String[] args) {
        String[] a={"hello,man,cheng,c"};
        //for循环遍历数组a
        for (int i = 0; i < a.length; i++) {
            //用splist()方法根据,分割数组a
           String[] c=a[i].split(",");
           //分割后的数组a被分成4个数组
            for (String b:c
                 ) {
                //打印分割后的4个数组
                System.out.println(b);
            }
        }
    }
}

结果如下:

            //用splist()方法根据\\s,\\s表示空格,\\s+表示一个或多个空格分割数组a
           String[] c=a[i].split("\\s+");

回文数:
        int cur = 0;
        int num = x;
        while(num != 0) {
            cur = cur * 10 + num % 10;
            num /= 10;
        }
//本代码可以检验数字的反转,当输入x=121时经过while循环可以得到cur=123,当输入x=456时,经过while循环可以得到cur=654。

c.toCharArray();
//toCharArray方法是String类中的方法可以将字符串拆分成单个的数组。
str2.charAt(1);
//取字符串中下标为1的字符;
        Integer[] numbers = {5, 2, 8, 1, 9};
        Arrays.sort(numbers, Collections.reverseOrder());
        for (Integer a:numbers
             ) {
            System.out.print(a);
        }
//对数组进行降序处理
int[] a=new int[];
Arrays.sort(a);
//对数组a进行升序处理。

 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Arrays.sort(str1,(a,b)->(b+a).compareTo(a+b));

Arrays.sort()是一个数组排序,(a,b)->(b+a).compareTo(a+b)是一个 Lambda 表达式充当了自定义的比较器。如果 a 是 "abc"b 是 "def",那么 b + a 就是 "defabc"a + b 就是 "abcdef"。通过 compareTo 方法对这两个拼接后的字符串进行字典序(也就是字符的 ASCII 码顺序)的比较。

Integer.bitCount()是 Java 中Integer类提供的一个静态方法,用于统计一个整数的二进制表示中1的个数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值