Java字符串——字符串概述、String字符串的定义形式

  • 字符串概述
  • 字符串的定义形式


字符串概述

学习内容:
(1) 如何创建String对象
(2) String对象的常用方法
(3) ==和equals方法的区别
(4) String的不可变性

字符串的定义形式

  1. “study”是字符串常量,使用“study”创建一个字符串对象,并赋值给字符串引用s。
String s = “study”;
  1. 使用new关键字创建字符串对象,字符串的值为一个空串“”。
String s = new String();
  1. 使用字符串常量“study”创建对象,会先去常量池中查看“study”是否存在,如果存在就直接使用“study”创建对象,如果不存在,就先在常量池中创建字符串“study”,然后再使用“study”创建对象,赋值给字符串引用s。
String s = new String(“study”);
  1. 可以使用字符数组创建字符串,先定义一个字符数组,创建字符串对象时使用字符数组作为参数。
char[] ch = {‘s’, ‘t’, ‘u’, ‘d’, ‘y’};
String s = new String(ch);
  1. 除了使用字符数组的所有元素创建字符串以外,还可以使用字符数组的一部分创建字符串。这里的参数1和2的含义是:1表示从数组元素的第几位开始,2表示一共几个数组元素。从第一位开始也就是从‘t’这个字符开始,2表示从‘t’开始的两个字符,因此字符串s的值为‘tu’。
char[] ch = {‘s’, ‘t’, ‘u’, ‘d’, ‘y’};
String s = new String(ch,1,2);
  1. 可以利用字节数组生成字符串,与字符数组都在输入输出流部分应用较多,用于存储传输的二进制数据。
byte[] b = {54,69,70,71,72};
String s = new String(b);
String s1 = new String(b,1,2);

运行结果:

s=6EFGH
s1=EF

从结果可以看出,实际上这里的字节数组的元素是ASCII码值,创建字符串对象后,九江他们转换为字符了。同样,也可以使用数组元素的一部分来创建字符串。
在使用字节数组时也可以指定字符集,如下所示:

byte[] b = {54,69,70,71,72};
String s = new String(b,“utf-8”);
String s1 = new String(b,1,2,“utf-8”);

需要注意的是,此时需要抛出异常UnsupportedEncodingException,该异常可能会因为编码格式写错而发生,比如不小心将utf-8写成了uft-8。