常用的String类、正则表达式、Date类、Calendar 类、BigDecimal类

本文深入探讨了Java中字符串类的使用,包括String、StringBuffer和StringBuilder的区别,以及正则表达式的应用。同时,文章介绍了Java基本数据类型的包装类、日期时间处理和BigDecimal类的高精度算术运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用的String类:

public byte[] getBytes():把字符串转换成字节数组

public char[] toCharArray():将此字符串转换为一个新的字符数组。

static String valueOf(char[] data):将字符数组转化成字符串(原则上来说,该方法可以将任意类型都转化成字符串)

substring(int beginIndex,int endIndex) 返回一个新的字符串,它是此字符串的一个子字符串

public String[] split(String regex):根据给定正则表达式的匹配拆分此字符串。

字符串的内容一旦被创建也就意味着无法进行改变,如果我们将它进行改变则会创建一个新的字符串对象

如果需要对字符串进行频繁的改变,我们就应该使用字符串缓冲区类

StringBuffer(字符串缓冲区类):线程安全的可变字符序列。

StringBuffer方法:

public int capacity():返回的是当前缓冲区的容量

public int length():返回的是一个具体的长度

增:

StringBuffer(“toobug”);

sb.append(“好啊”);

sb.insert(1, “笨笨的”);

删:

sb.delete(1,4); 从指定位置开始到指定位置结束的删除 结束长度为end-1

sb.deleteCharAt(5);根据索引位置删除指定字符

改:

sb.replace(0, 5, “JAVA好”);从指定索引开始,到指定索引结束,替换指定内容

sb.setCharAt(1, ‘好’);根据指定索引,替换字符内容

查:

sb.toString():打印出sb的字符串内容

sb.indexOf(“t”):查找该字符在字符中首次的索引位置

sb.substring(0, 3):从指定索引开始到指定索引结束,结束对应的字符串内容

1.String/StringBuffer/StringBuilder三个的区别?

a.String是一个不可变的字符序列,而StringBuffer/StringBuilder是可变的字符序列

b.StringBuffer是同步,所以效率低,但是数据是安全的,

   而StringBuilder不是同步的,所以他的效率更快,但是数据是不安全的

   

2.StringBuffer底层还是来维护一个数组,那么他和数组的区别是什么?

StringBuffer,是不是只能存储一个字符序列的内容?

而数组是可以存储多个类型的容器,但是必须是同一种数据类型

public boolean matches(String regex)

正则表达式:符合一定规则的字符串

正则表达式:语法

字符

x 字符 x

\ 反斜线字符

\t 制表符 (’\u0009’)

\n 新行(换行)符 (’\u000A’)

\r 回车符 (’\u000D’)

字符类

[abc] a、b 或 c(简单类)

[^abc] 除了abc,其余任意字符都允许使用

[a-zA-Z] 能包含a-z / A-Z范围内的字符

[0-9]能包含0-9的数据

预定义字符类

. 任何字符(与行结束符可能匹配也可能不匹配) .

\d 数字:[0-9]

\D 非数字: [^0-9]

\s 空白字符:[ \t\n\x0B\f\r]

\S 非空白字符:[^\s]

\w 单词字符:[a-zA-Z_0-9]

\W 非单词字符:[^\w]

边界匹配器

^ 行的开头

$ 行的结尾

\b 单词边界

\B 非单词边界

\A 输入的开头

\G 上一个匹配的结尾

\Z 输入的结尾,仅用于最后的结束符(如果有的话)

\z 输入的结尾

Greedy 数量词

X? X,一次或一次也没有

X* X,零次或多次

X+ X,一次或多次

X{n} X,恰好 n 次

X{n,} X,至少 n 次

X{n,m} X,至少 n 次,但是不超过 m 次 [0-9]{4,14}

需求:我需要获取int的最大取值范围和最小取值范围

为了对基本数据类型提供更多的操作,Java为一种基本数据类型都提供了对应的包装类(包装类类型)

byte Btye

short Short

int Integer

long Long

float Float

double Double

char Character

boolean Boolean

Integer(int value)

构造一个新分配的 Integer 对象,它表示指定的 int 值。

Integer(String s)

构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。

注意:这里的内容必须是整数类型,而不能是字符串类型

JDK5的新特性:

自动装箱:把基本数据类型转换为包装数据类型

自动拆箱:把包装数据类型自动转换为基本数据类型

// Integer i = new Integer(100);//Integer i = Integer.valueOf(500); //自动装箱

Integer i = 500;

int x = i + 200; //int x = i.intValue() + 200;//自动拆箱

System.out.println(x);

Date:表示特定的瞬时时间,精确到毫秒

构造方法:

Date():根据当前默认的时间格式返回当前时间

Date(long date):根据给定的毫秒值来创建时间对象

getTime():获取时间以毫秒为单位

//将系统默认时间转换成自定义的模板格式

//创建时间对象

Date d = new Date();

//创建时间格式化对象,并且设定日期格式

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

//将指定的Date的对象进行模板格式化

String s = sdf.format(d);

System.out.println(s);

System.out.println("--------------------------------------");

//将模板格式,转换成系统默认时间

String string = “7-30 17:13:48”;

SimpleDateFormat sdf1 = new SimpleDateFormat(“MM-dd HH:mm:ss”);

Date d1 = sdf1.parse(string);

System.out.println(d1);

Calendar 类

Calendar rightNow = Calendar.getInstance(); //来获取子类对象

//获取年

int year = rightNow.get(Calendar.YEAR);

//获取月

int month = rightNow.get(Calendar.MONTH);

//获取日

int date = rightNow.get(Calendar.DATE);

System.out.println(year+“年”+(month+1)+“月”+date+“日”);//month需要+1

BigDecimal类

因为我们的CPU对浮点数运算无法进行精确,容易丢失精度,数据越广 精度丢失越大

如何解决?

BigDecimal bd1 = new BigDecimal(“0.09”);

BigDecimal bd2 = new BigDecimal(“0.01”);

//加

System.out.println(bd1.add(bd2));

//减

System.out.println(bd1.subtract(bd2));

//乘

System.out.println(bd1.multiply(bd2));

//除

System.out.println(bd1.divide(bd2));

内容概要:本文档详细介绍了基于Google Earth Engine (GEE) 构建的阿比让绿地分析仪表盘的设计与实现。首先,定义了研究区域的几何图形并将其可视化。接着,通过云掩膜函数裁剪操作预处理Sentinel-2遥感影像,筛选出高质量的数据用于后续分析。然后,计算中值图像并提取NDVI(归一化差异植被指数),进而识别绿地及其面积。此外,还实现了多个高级分析功能,如多年变化趋势分析、人口-绿地交叉分析、城市热岛效应分析、生物多样性评估、交通可达性分析、城市扩张分析以及自动生成优化建议等。最后,提供了数据导出、移动端适配报告生成功能,确保系统的实用性便捷性。 适合人群:具备一定地理信息系统(GIS)遥感基础知识的专业人士,如城市规划师、环境科学家、生态学家等。 使用场景及目标:①评估城市绿地分布及其变化趋势;②分析绿地与人口的关系,为城市规划提供依据;③研究城市热岛效应及生物多样性,支持环境保护决策;④评估交通可达性,优化城市交通网络;⑤监测城市扩张情况,辅助土地利用管理。 其他说明:该系统不仅提供了丰富的可视化工具,还集成了多种空间分析方法,能够帮助用户深入理解城市绿地的空间特征及其对环境社会的影响。同时,系统支持移动端适配,方便随时随地进行分析。用户可以根据实际需求选择不同的分析模块,生成定制化的报告,为城市管理提供科学依据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值