Java核心类String类与字符编码63课件讲解.pptxVIP

  • 0
  • 0
  • 约4.49千字
  • 约 53页
  • 2026-02-07 发布于陕西
  • 举报

Java核心类String类与字符编码63课件讲解.pptx

Java核心类:String类与字符编码;String类及其使用;

字符编码;;String是类代表字符串,String的值会被放到常量池中,所以String的值是不可被修改的,String是可以被所有对象所共享的

String在底层用的是char[]数组实现,同时带一个整数类型的hash值

;String不带参数的构造函数,初始化数组为“”字符串常量的数组引用

String带一个String对象的构造函数

String带字符数组的构造函数,在构造函数中通过Arrays.copyOf方法拷贝数组value内容

;两个String对象内容是否相同,使用equals(ObjectanObject)方法而不能用==

String字符串搜索方法有:indexOf(Stringstr)、lastIndexOf(Stringstr)、startsWith(Stringprefix)、endsWith(Stringsuffix)等方法

;String提取字串substring(intbeginIndex,intendIndex)方法,String移除字符串首尾空白字符(空白字符包括空格,\t,\r,\n)trim()方法

String格式化字符串format(Stringformat,Object...args);String常量池;String常量池的示例;;ASCII编码:在早期的计算机系统中,为了给字符编码,美国国家标准学会(AmericanNationalStandardInstitute:ANSI)制定了一套英文字母、数字和常用符号的编码,它占用一个字节,编码范围从0到127,最高位始终为0;如字母B对应ANSI码为:0x42

中文GB2312编码:把汉字也纳入计算机编码,使用ASCII编码显然一个字节是不够的,GB2312标准使用两个字节表示一个汉字,其中第一个字节的最高位始终为1,以便和ASCII编码区分开,收录7445个图形字符,其中包括6763个汉字;汉字文的GB2312编码是0xCEC4

;Unicode编码:为了统一全球所有语言的编码,全球统一码联盟发布了Unicode编码,它把世界上主要语言都纳入同一个编码,这样,中文、英文和其他语言就不会冲突,Unicode采用四个字节为每个字符编码;如字母B对应ANSI码为:0x42,其Unicode编码为:0汉字文的GB2312编码是0xcec4,其Unicode编码为:0UTF-8编码:英文字符的Unicode编码高字节总是00,包含大量英文的文本会浪费空间,所以出现了UTF-8编码,它是一种变长编码,用来把固定长度的Unicode编码变成1~4字节的变长编码;如字母B对应ANSI码为:0x42,其UTF-8编码为:0x42;汉字文的Unicode编码为:0其UTF-8编码为:0xE69687;

;GBK编码:1995年12月发布的汉字编码国家标准,是对GB2312编码的扩充,对汉字采用双字节编码,GBK字符集共收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字;如字母B对应ANSI码为:0x42,其GBK编码为:0x42;汉字文的GB2312编码是0xCEC4,GBK编码为:0xCEC4

;当编码不一致时,可能会导致文字出现乱码,严重时甚至会导致电脑宕机;

乱码的原因与字符在不同的编码下,字符的码位和码点不同造成的

现代的编辑器一般自带自动识别编码的功能;不同系统下使用的编码可能会不同,但只要我们知道对方系统使用的时是什么字符集,乱码问题就迎刃而解了;在Java中char类型实际上就是两个字节的Unicode编码,以下方法可以把字符串转换成其它编码

已知编码的byte[]转换为String,以下示例代码中字符串s1和s2对象保存在数组value的字符为Unicode编码

;1、String类;

2、字符编码;;Java核心类:StringBuilder和StringJoiner;StringBuilder类;

StringJoiner类;;;Java编译器对String做了特殊处理,使得我们可以直接用+拼接字符串

这段可以直接拼接字符串,在循环中,每次循环都会创建新的字符串对象,然后扔掉旧的字符串;绝大部分字符串都是临时对象,不但浪费内存,还会影响GC效率;为了能高效拼接字符串,Java标准库提供了StringBuilder,它是一个可变对象,可以预分配缓冲区,这样,往StringBuilder中新增字符时,不会创建新的临时对象

;StringBuilder是字符串缓冲区,我们可以将其理解为是一种容器,是一种可变字符序列

Str

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档