java-基本程序设计结构

基本数据类型
public class Main {

public static void main(String[]args) {
    // 2进制表示--10进制为3
    System.out.println(0b0011);
    // 16进制表示--10进制为14
    System.out.println(0xe);
    // 8进制表示--10进制为8
    System.out.println(010);
    // 可以在数字中加下划线便于阅读
    System.out.println(100_100_100);
    // 长整型可以加一个'L'作为后缀
    System.out.println(1000000000L);
    // float类型的浮点数后面使用后缀'F',double类型的浮点数后面使用后缀'D',
    System.out.println(0.01F);
    System.out.println(0.01D);

}

}
数组深拷贝和浅拷贝
Arrays.copyof(原始数组,新数组的长度)

如果数组元素是数值型,那么多余的元素将被赋值为0 ; 如果数组元素是布尔型, 则将赋值为false。相反, 如果长度小于原始数组的长度,则只拷贝最前面的数据元素。

import java.util.Arrays;

public class Main {

public static void main(String[]args) {
    int[] arr = {1,2,3,4,5};
    int[] cloneArr = arr;
    int[] p = Arrays.copyOf(arr,arr.length);
    arr[1] = 10;

    for (int num: arr) {
        System.out.printf(num + " ");
    }

    System.out.println();

    for (int num: cloneArr) {
        System.out.printf(num + " ");
    }

    System.out.println();

    for (int num: p) {
        System.out.printf(num + " ");
    }
}

}
输出:

1 10 3 4 5
1 10 3 4 5
1 2 3 4 5
数组排序
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;

public class InterfaceTest {

public static void main(String[] args) {
    Integer[] arr = {19,67,55,9,20,35};
    // 升序排序
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));
    // 降序排序
    // 第一种方法:Collections.reverseOrder()
    Arrays.sort(arr, Collections.reverseOrder());
    System.out.println(Arrays.toString(arr));

    // 第二种方法:实现Comparator接口
    Arrays.sort(arr, new Comparator<Integer>() {
        @Override
        public int compare(Integer o1, Integer o2) {
            // o1.compare(o2)返回正数,说明o1比o2大
            // 正序排序: o1 - o2 > 0
            // 降序排序: o2 - o1 > 0
            // return Integer.compare(o2,o1);
            return o2 - o1;
        }
    });

    // 更简洁的写法: lambda表达式
    Arrays.sort(arr, (o1,o2) -> o2 - o1);
    System.out.println(Arrays.toString(arr));

}

}
多维数组
每一行的数据长度可以不相等,创建多维数组时必须指定行数

import java.util.Arrays;

public class Main {

public static void main(String[]args) {
    final int MAX = 10;
    // 指定行数
    int[][] arr = new int[MAX][];
    // 分配行的长度
    for (int i = 0; i < MAX; i++) {
        arr[i] = new int[i+1];
    }
    
    for (int i = 0; i < MAX; i++) {
        for (int j = 0; j <= i; j++) {
            arr[i][j] = j+1;
        }
    }
    for (int[] row : arr) {
        for (int val: row) {
            System.out.print(val + " ");
        }
        System.out.println();
    }
    
    // 快速打印二维数组的值
    System.out.println(Arrays.deepToString(arr));
}

}
交换数组的任意两行

import java.util.Arrays;

public class Main {

public static void main(String[]args) {
    int[][] arr = {{1,2,3},{4,5,6,7}};
    int[] tmp = arr[0];
    arr[0] = arr[1];
    arr[1] = tmp;
    System.out.println(Arrays.deepToString(arr));
}

}
二维数组复制

public class Main {

public static void main(String[]args) {
    int[][] arr = {{1,2,3},{4,5,6,7}};
    // 长度为行数
    int[][] arr_copy = Arrays.copyOf(arr,2);
    System.out.println(Arrays.deepToString(arr_copy));
}

}
不可变字符串
String ans = String.join(“,”,”hello”,”are”,”you”,”ok”); // 使用逗号分隔字符串
System.out.println(“hello”.equalsIgnoreCase(“HEllo”)); // true 不区分大小写比较
控制台程序
import java.io.Console;

public class Main {

public static void main(String[]args) {
    Console console = System.console();
    String str = console.readLine("User name: ");
    char[] password = console.readPassword("password: ");
    System.out.println(str);
    for (int i = 0; i < password.length; i++) {
        System.out.println(password[i]);
    }
}

}
格式化输出
对第i个参数多次不同的格式化输出

import java.util.Date;

public class Main {

public static void main(String[]args) {
    String name = "Alice";
    int age = 18;
    String message = String.format("Hello %s,Next year you will be %d",name,age+1);
    System.out.println(message);
    System.out.printf("%.2f%%\n",20*100/100.0);
    System.out.printf("%1$s %2$tB %2$te, %2$tY\n", "Due date:", new Date());
    System.out.printf("%1$.2f,%1$.3f,%1$.4f",100/3.0);
}

}
带标签的break
标签必须放在希望跳出的最外层循环之前, 并且必须紧跟一个冒号:

可以将一个标签放在想要跳到的语句块之前,类似于goto的作用

import java.util.Scanner;

public class Main {

public static void main(String[]args) {
    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    label:
    for (int i = 0; i < n; i++) {
        if (i == 10) {
            System.out.println(i);
            break label;
        } else {
            System.out.println(i);
        }
    }
}

}
大整数
import java.math.BigInteger;

public class Main {

public static void main(String[]args) {
    // 使用字符串创建大整数
    BigInteger bigInteger = new BigInteger("11111111111111111111111111111111111111111111111111111111");
    // 最大只支持long
    BigInteger bigInteger1 = BigInteger.valueOf(111111111);
    // 四则运算+取模
    System.out.println(bigInteger.add(bigInteger1));
    System.out.println(bigInteger.subtract(bigInteger1));
    System.out.println(bigInteger.multiply(BigInteger.valueOf(1111111)));
    System.out.println(bigInteger.divide(new BigInteger("11111111")));
    System.out.println(bigInteger.mod(bigInteger1));
}

}
java匹配一个或多个空格
// 匹配一个或多个空格
String [] words = sentence.split(“\s+”);
for (String s : words) {

System.out.println(s);

}
BufferedReader和BufferedWriter
BufferedReader读入数据

BufferedWriter输出数据

IO数据大的时候替换Scanner输入和System.out输出

import java.io.*;

public class Main {

public static void main(String[] args) throws Exception {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String str = br.readLine(); // 一行一行读入
    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    bw.write(str);
    bw.write("\n");
    bw.flush(); // 记得刷新缓存
}

}
StringBuilder和StringBuffer
可变字符串,String是不可变字符串

public class Main {

public static void main(String[] args) {
    StringBuffer sb = new StringBuffer("hello ");
    sb.append("world!");
    System.out.println(sb);
    // 字符串反转,String没有这个方法
    System.out.println(sb.reverse());
    StringBuilder builder = new StringBuilder("AAA");
    builder.append(" BBB");
    System.out.println(builder);
}

}

原创文章:https://www.qqhhs.com,作者:起航®,如若转载,请注明出处:https://www.qqhhs.com/71.html

版权声明:本站提供的一切软件、教程和内容信息仅限用于学习和研究目的,请于下载的24小时内删除;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

Like (0)
Donate 受君之赠,荣幸之至 受君之赠,荣幸之至 受君之赠,荣幸之至 受君之赠,荣幸之至
Previous 2023年1月10日
Next 2023年1月10日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

qhhl

QQ-175142992024110802215838同号

SHARE
TOP
“人们不愿意相信,一个土匪的名字叫牧之”