3、Java中的文本、数值和日期类库

使用软件处理最多的数据:文本、数值、日期

JDK提供了许多API接口进行处理

1、文本处理——使用字符和字符串

char:单字符,基本类型

String:字符串,类,拥有非常强大的字符串处理能力(String类的对象是不可变更的,每次对他产生操作都会产生一个新的对象(占内存、消耗时间),在大量字符串拼接的时候,性能低下)

示例如下:

public class StringDemo {
    public static void main(java.lang.String[] args) {
        //需求:将第一个首字母大写
        String str = "hello world";
        //分解题目:1、将原字符串分解成两段,首字母加后面部分;
        String first = str.substring(0,1);
        String second = str.substring(1);
        //2、将首字母转大写
        first = first.toUpperCase();
        //3、拼接转换过的字符串
        str = first + second;
        System.out.println(str);
    }
}

进阶的字符串处理类——带缓冲的字符串类(原地修改,不会频繁创建对象)

①StringBuilder——单线程处理

②StringBuffer——多线程处理

示例如下:

//用String进行大量字符串拼接
public class StringDemo {
    public static void main(java.lang.String[] args) {
        String  tmp = "";
        //引入计时,比较两种处理字符处理类的效率
        long start = System.currentTimeMillis();
        //大量的字符串拼接
        for(int i = 0; i < 100000; i++) {
             tmp += i;                                 
        }
        long end = System.currentTimeMillis();
        System.out.println("耗时:" + (end - start) + "ms");
    }
} 
//结果:16600ms
//用StringBulider进行改进
public class StringDemo {
    public static void main(java.lang.String[] args) {
        StringBulider tmp = new StringBuilder();
        long start = System.currentTimeMillis();
        for(int i = 0; i < 100000; i++) {
             tmp.append(i);                                 
        }
        long end = System.currentTimeMillis();
        System.out.println("耗时:" + (end - start) + "ms");
    }
} 
//结果:6ms

2、数值处理

①基本类型、数学工具类Math(属于java.util类)、随机数工具类Random

//随机数Random类(设置范围)
Random rand = new Random();
System.out.println(rand.nextInt(100))

②特殊的数值类:包装类(解决了引用类型的参数转换问题)

基本类型——————包装类对照表

byte

Byte

char

character

int

integer

short

Short

long

Long

float

Float

double

Double

boolean

Boolean

int i = 10;
Integer i2 = i; // 自动装箱 -> 将基本类型数据转化为包装类型
int c = i2;     //自动拆箱 -> 将包装类型自动转化为基本类型
String istr = i2.toString(); // 将数值转字符串
Integer i3 = Integer.parseInt("123"); // 将字符串转数值

3、日期和时间——Date类(属于java.util.Date包)

Date():用来创建当前时间的Date对象
Date(long Date):一个固定的时间,即是一个时间戳
日期格式化类:SimpleDateFormat类
DateFormat是一个抽象类,调用对象的Format方法就可以进行格式化了
    //标准格式(toString控制输出)
    Date now = new Date();
    System.out.println(now);
    //自定义格式
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    String strDate = sdf.format(now);
    System.out.println(strDate);
    //获取一个周之前的今天
    long timestamp = now.getTime();
    timestamp -= 7*24*60*60*1000;
    Date last = new Date(timestamp);
    System.out.println(sdf.format(last));
JDK8新增了一个java.time包
    //Java8的新玩法
    LocalDateTime now2 = LocalDateTime.now();
    System.out.println(now2);
    System.out.println(now2.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
    LocalDateTime.of(2022, 2, 26, 10, 10);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值