java实用小方法总结-----java基础(持续更新中)

1.字符(char)转整型(int)

是不是有点懵逼。‘1’ => 1有什么好转,不就嘎嘎转吗。

诶! 你还别说,里面大有门道。

1.1. 第一层的小伙伴可能想到

        int a = '1';
        int b = (int) a;
        System.out.println(a);

在这里插入图片描述

不过很抱歉,它的答案是49,很明显,被强转成ASCII码了。

1.2. 第二层的小伙伴就可能想到先转成字符串,在转成int了

        char a = '1';
        int b = Integer.parseInt(String.valueOf(a));
        System.out.println(b);

在这里插入图片描述
答案是对的没错,不过调用了两个方法,也太麻烦了

1.3. 大气层的同志们就不一样了,直接用字符ASCII的性质,一步到位

        char a = '1';
        int b = a - '0';
        System.out.println(b);

在这里插入图片描述
代码简洁,效率高!

2.字符(char)ASCII的妙用

当你用字典法,排除字母狼狈的样子,是不是在对照ASCII表,哈哈哈,这样就对了,很符合我等新手的想象。

如何快速的声明字典数组,或者准确对位数组。

1.1. 快速声明字典

        int[]arr = new int['z' - 'a' + 1];
        System.out.println(arr.length);

在这里插入图片描述
1.2. 快速对照字典:

        int[]arr = new int['z' - 'a' + 1];
        System.out.println(arr.length);
        arr['a' - 'a'] = 1;
        arr['z' - 'a'] = 2;
        System.out.println(arr[0]);
        System.out.println(arr[25]);

在这里插入图片描述
是不是这样又快又准,哈哈哈。

3.JDK8新的日期类的使用

不知道谁还在用new date,恕我直言真的是又难用,可惜网上的教程还都是基于这玩意的。

但是jdk8引入了心的日期时间类(有细分的日期和时间),只能说远离date,人人有责

        Date date = new Date();
        System.out.println(date.toString());  //就date声明时间
       LocalDateTime localTime = LocalDateTime.now();
       System.out.println(localTime.toString());            //新date声明
       
localTime.plusDays(10);//新时间日期增加时间
        Date date = new Date();
        System.out.println(date.toString());
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        cal.add(Calendar.DAY_OF_YEAR,1);
        //旧日期时间增加时间

只能说老的api啥都没有,支持正义薄纱

4.StringBuilder高效的字符串拼接工具

如果是新手一定会选择

String a = "a";
String b = "b"
String ab = a + b;

这种用+拼接符拼接的会造成效率的降低,底层是通过StringBuilder 拼接并通过toString输出(会生产很多的对象,可以在jvm学习中了解到)

StringBuilder sb = new StringBuilder() 
sb.append(a");
sb.append("b");

5.JAVA的区间为左闭又开

java中很多范围都是取左闭右开(二分查找,分治,for循环,数组下标,list等等)

6.JAVA快速创建数组

可以采用匿名数组的方式,用于方法取参,测试等简单场景

new int[]{2, 3, 6, 7};

在这里插入图片描述

7. 字符串内字符快速字典排序

String S = "adsfesaf";
String []charS = s.split("");
            Arrays.sort(charS);
            StringBuilder stringBuilder = new StringBuilder();
for(String tempS : charS){
            stringBuilder.append(tempS);
}
String newS = stringBuilder.toString();

split() 方法按照给定的正则表达式将字符串分割成子串,并返回一个字符串数组。如果传递空串 “” 给 split() 方法,它将尝试在每个字符之间分割字符串。这意味着字符串中的每个字符都会成为数组的一个元素。

7. 字符串数组字典序排序

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        String[] strings = {"banana", "apple", "orange", "grape"};
        
        Arrays.sort(strings);
        
        for (String str : strings) {
            System.out.println(str);
        }
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只会写bug的靓仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值