Java基础语法系列(1)

1. 基本语法展示

1.1 字符串

  • 字符串作为操作对象:核心操作就是字符串的字符列表转化(string.toCharArray());字符串的分割(string.split())
  • 类型转化,记住两点:需要转化为字符串就是用String.valueOf();转化为其他就是用Integer.valueOf(),把需要转化的对象放在前面
    public static void main(String[] args) {
        // 1)字符串的定义,分割,类型转化(变为char[]类型),输出
        String str1 = "apple";
        String str2 = "127.0.1";
        String str3 = "apple banana tomato";
        String str4 = "abc_dfg_ghi";

        char[] str1ToChar = str1.toCharArray();
        String[] strings1 = str2.split("\\.");  //特殊字符,需要先转义
        String[] strings3 = str3.split(" ");
        String[] strings4 = str4.split("_");

        System.out.println("str1ToChar=" + Arrays.toString(str1ToChar)); //str1ToChar=[a, p, p, l, e]
        System.out.println("string2=" + Arrays.toString(strings1)); //string2=[127, 0, 1]
        System.out.println("string3=" + Arrays.toString(strings3)); //string3=[apple, banana, tomato]
        System.out.println("string4=" + Arrays.toString(strings4)); //string4=[abc, dfg, ghi]

        //字符之间的转化:其他类型转变为字符串
        int trans1 = 3;
        double trans2 = 3.2;
        boolean trans3 = false;
        char trans4 = 'a';

        String ints = String.valueOf(trans1);  //ints=3
        String doubles = String.valueOf(trans2);  
        String booleans = String.valueOf(trans3);
        String chars = String.valueOf(trans4);

        System.out.println("ints=" + ints);  //ints=3
        System.out.println("doubles=" + doubles); //doubles=3.2
        System.out.println("booleans=" + booleans); //booleans=false
        System.out.println("chars=" + chars); //chars=a

        //字符之间的转化:字符串转变为其他类型
        int trans11 = Integer.valueOf(ints);
        double trans22 = Double.valueOf(doubles);
        boolean trans33 = Boolean.valueOf(booleans);
        System.out.println("trans11=" + trans11); //trans11=3
        System.out.println("trans22=" + trans22); //trans22=3.2
        System.out.println("trans33=" + trans33); //trans33=false

        // 字符串间比较大小
        String stringBig="zbbc";
        String stringSmall="zaca";
        System.out.println("the bigger one="+stringBig.compareTo(stringSmall)); //the bigger one=1

        // StringBuilder的使用(统一变为字符串,进行拼接)
        StringBuilder stringBuilder=new StringBuilder();
        stringBuilder.append(2);
        stringBuilder.append(444);
        stringBuilder.append("aaaa");
        stringBuilder.append(false);
        System.out.println("stringBuilder="+stringBuilder);    //stringBuilder=2444aaaafalse
    }

1.2 数组

    public static void main(String[] args) {
        //思考:数组的排序核心依赖Arrays函数,排序,填充初值,输出字符串都靠这个

        //1)数组定义
        int[] ints1 = new int[2];
        int[] ints2;
        int[] ints4 = new int[]{1, 2, 3};
        int[][] ints5 = new int[2][3];

        //2)数组赋值和拷贝
        ints1[0] = 1;
        Arrays.fill(ints4, -1); //批量赋初值
        int[] intsCopy = Arrays.copyOf(ints4, ints4.length);
        intsCopy[1] = 2;
        System.out.println("ints4的值" + Arrays.toString(ints4)); //ints4的值[-1, -1, -1]
        System.out.println("intsCopy的值" + Arrays.toString(intsCopy)); //intsCopy的值[-1, 2, -1]

        //3)数组遍历
        for (int i = 0; i < ints4.length; i++) {
            System.out.println("ints4[" + i + "]=" + ints4[i]);
        }
        //ints4[0]=-1
        //ints4[1]=-1
        //ints4[2]=-1

        //4)数组排序
        //4。1:一维数组排序(sort是正序,集合类才能使用new Comparator)
        int[] sortArray = new int[]{2, 3, 4, 1, 5};
        System.out.println("初始的排序=" + Arrays.toString(sortArray));//初始的排序=[2, 3, 4, 1, 5]
        
        Arrays.sort(sortArray);
        System.out.println("默认的正序=" + Arrays.toString(sortArray));//默认的正序=[1, 2, 3, 4, 5]

        Integer[] sortArray1 = new Integer[]{2, 3, 4, 1, 5};
        System.out.println("初始的排序=" + Arrays.toString(sortArray1));//初始的排序=[2, 3, 4, 1, 5]
        Arrays.sort(sortArray1);
        System.out.println("默认的正序=" + Arrays.toString(sortArray1));//默认的正序=[1, 2, 3, 4, 5]
        Arrays.sort(sortArray1, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;
            }
        });
        System.out.println("集合类使用函数的逆序=" + Arrays.toString(sortArray1));
        //集合类使用函数的逆序=[5, 4, 3, 2, 1]

        //4。2:二维数组排序(sort是正序,非集合类就能使用new Comparator)
        //排序规则:第一个数字从小到大排列,如果遇到相等的就按照第二个的大小从大到小排列
        int[][] sortArrays = new int[][]{{2, 1, 3}, {1, 2, 3}, {2, 2, 2}};
        System.out.println("二维数组默认排序不合法=" + Arrays.deepToString(sortArrays));
        //二维数组默认排序不合法=[[2, 1, 3], [1, 2, 3], [2, 2, 2]]
        Arrays.sort(sortArrays, new Comparator<int[]>() {
            @Override
            public int compare(int[] o1, int[] o2) {
                if(o1[0]==o2[0]){
                    return o2[1]-o1[1];
                }
                return o1[0]-o2[0];
            }
        });
        System.out.println("二维数组排序=" + Arrays.deepToString(sortArrays));
        //二维数组排序=[[1, 2, 3], [2, 2, 2], [2, 1, 3]]
    }

补充:进制转换

进制转化核心使用的是Integer的两个函数:Integer.valueOf()和Integer.toB,toO,toH的类函数

    public static void main(String[] args) {
        // 十进制转化为二进制,八进制和十六进制
        int tenTag=10;
        String twoTag=Integer.toBinaryString(tenTag);
        String eightTag=Integer.toOctalString(tenTag);
        String sixteenTag=Integer.toHexString(tenTag);
        String sixteenTagUpperCase=Integer.toHexString(tenTag).toUpperCase();
        System.out.println("十进制转二进制="+twoTag); //十进制转二进制=1010
        System.out.println("十进制转八进制="+eightTag); //十进制转八进制=12
        System.out.println("十进制转十六进制莫默认小写="+sixteenTag); //十进制转十六进制大写=a
        System.out.println("十进制转十六进制大写="+sixteenTagUpperCase); //十进制转十六进制大写=A

        //二进制,八进制和十六进制转化为十进制
        int twoToTen =Integer.valueOf(twoTag,2);
        int eightToTen =Integer.valueOf(eightTag,8);
        int sixteenToTen =Integer.valueOf(sixteenTag,16);
        System.out.println("二进制转十进制="+twoToTen); //二进制转十进制=10
        System.out.println("八进制转十进制="+eightToTen); //八进制转十进制=10
        System.out.println("十六进制转十进制="+sixteenToTen); //十六进制转十进制=10

        //二进制,八进制和十六进制转化:首先均转化为十进制,然后再从十进制转化为其他的进制
        //1)例子:把二进制111,转变为十六进制
        String two="111";
        String sisTeen=Integer.toHexString(Integer.valueOf(two,2));
        System.out.println("二进制转化为十六进制="+sisTeen); //二进制转化为十六进制=7
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值