算法笔记(重点版)

1.获取char字符

char a = sc.next().charAt(0);

0代表拿字符串的第几个字符

2.大小字符转换

a(97)到A(65)可以用a-32

A(65)到a(97)可以用A+32

例子:

3.拿到String字符串的具体值(可配合for循环来反转字符串,第8条也可以反转)

比如:String a = ab32.65,要拿到2,就需要a.charAt(3)

4.要精确到少数点后几位

有两种方法,一种输出完会换行输出,另一种不会换行输出(这两种都是四舍五入的精确)

(1).System.out.printf("%.3f",a);------不换行

(2).String b = String.format("%.3f",a); System.out.println(b);-------换行

5.计算一个数字的指定次幂或开方根

比如:
计算2的3次方: Math.pow(2,3)
计算2的开平方根: Math.pow(2,0.5)

6.向前补0使达到指定宽度(可用来做时间题)

(1).整数类型

int hour = 5; int minute = 15;
System.out.printf("%02d:%02d\n",hour,minute); //输出"05:15"
这里面0代表没达到位数在前补0(只能补0,不能是其他数字);  2代表宽度为2个数;  d代表这是整数类型;  :代表两个数之间是:(可以换成空格等其他)

(2).小数类型

double a = 2.5;
System.out.printf("%03.4f\n",a);  //输出2.5000
System.out.printf("%05.2f\n",a);  //输出02.50
这里面0代表没到达位数在前补0;  3代表宽度为3个数(注意,这里的宽度是包含了小数点的,并且如果后面小数比3大,要优先满足后面的数);  .4代表在小数点后面保留4位小数,如果没那么多在后补0;  f代表这是小数类型

7.向后补0使达到指定宽度

方法一:

int num = 5;
String a = String.format("%d00",num);
System.out.println(a); //输出"500"
这个方法是你在d后输几个0就在后面加几个0,你输3个1,就会输出"5111"
优点: 代码简洁
缺点: 要知道num具体的值

方法二:

double a = sc.nextDouble();
//拿到整数部分
int b = (int) a;
//拿到小数部分
double c = a-b;
//整数部分个数
int num = String.valueOf(b).length();
//6是要求的宽度,d是小数应是多少位
int d = 6-num;
System.out.printf("%."+d+"f",a);
这个代码注意不包含小数点,也就是12.35是宽度为4
优点: 只需要知道要求的宽度是多少即可
缺点: 代码冗余

8.反转字符串

double a = sc.nextDouble();
//把小数转换为字符串类型
String b = String.valueOf(a);
//把字符串转换成StringBuilder类型
StringBuilder hh = new StringBuilder(b);
//核心代码,reverse()可用来反转
StringBuilder num = hh.reverse();
System.out.println(num);

9.向上取整

Math.ceil(数字);

10.向下取整

Math.floor(数字),可以用来判断一个数是否有小数
比如一个double型数字,可以Math.floor(num) == num,如果相等就说明没有小数,可以转成int类型使后面的.0去掉

11.StringBuilder的实用方法

(1). insert(int offset, String str): 在指定位置插入字符串
(2). delete(int start, int end): 删除从start到end位置的字符
(3). replace(int start, int end, String str): 替换从start到end位置的字符为指定的字符串
(4). substring(int start, int end): 从指定位置开始到另一个指定位置结束的子字符串
(5). toString(): 将StringBuilder对象转换为字符串

12.String的实用方法

(1). String.valueOf('a');    把int,char,double,boolean,char[] 等类型变成String类型,返回类型:String

(2). a.equalsIgnoreCase("b");  忽略大小写比较两个字符串的内容是否一样,返回类型:boolean
(3). a.contains("b"); 判断一个字符串里面是否包含指定内容,返回类型:boolean
(4). a.startsWith("b"); 判断一个字符串是否以指定的内容开头,返回类型: boolean
(5). a.endsWith("b"); 判断一个字符串是否以指定的内容结尾, 返回类型: boolean

13.从小到大排序(从大到小排序)

从小到大: Arrays.sort(数组名)  可以对数组进行从小到大排序

从大到小: 可以使用冒泡排序
冒泡排序例子:
 

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
//用户输入依次添加到数组
        int[] arr = new int[3];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = sc.nextInt();
        }
//冒泡排序
        for (int y = 0; y < arr.length-1; y++) {
            for (int j = 0; j < arr.length - y-1; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
//打印数组
        for (int l = 0; l < arr.length; l++) {
            System.out.print(arr[l] + " ");
        }
    }
}

14. 取绝对值

Math.abs(a)
返回a(int,long,double,float)的绝对值

15.BigInteger常用方法(阶乘这种要高精度的用此类)

BigInteger a = new BigInteger("5");
BigInteger b = new BigInteger("3");

BigInteger num = a.add(b); //8   加法
BigInteger num1 = a.subtract(b); //2  减法
BigInteger num2 = a.multiply(b); //15  乘法
BigInteger num3 = a.divide(b); //1  除法
BigInteger num4 = a.remainder(b); //2  取余

常量:
BigInteger.ZERO  //0;
BigInteger.ONE  //1;

BigInteger.valueOf(a)  //5;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值