Java常用API—String类

1.   java中所有的字符串字面值(“ ”)都是String类的对象。


2.   String str = “sdf”;

 str:引用类型的变量

sdf”:对象

  String类型对象声明时将new省略掉了。

 直接打印strSystem.out.println(str); 不会出现对象地址,是因为String类重写了toString方法


3.  字符串是常量,创建后不可更改。

4.  String  str = “abc”; 
  str = “def”;

 引用变量str指向的内存地址改变,“abc”这个对象还在那里。


5.   String类的创建方式:

 ① new方式(每次都会在heap上创建一个新的实例)

  Stringstr1 = new String(“abc”);

 ②   字面量形式(不需要创建新实例,先去字符串常量池找)

  String str2 = “abc”;

  System.out.println(“str1 == str2”);//false

  System.out.println(“str1.equals(str2)”);//true,equals()方法被重写了,比较字符串中的每个字符是否相同。

 ③   字面量+字面量(先去常量池找)

  Stringstr3 = “abc”+ “def”;

 ④   字面量+变量(先去常量池找,如果有调用StringBuild连接)

  Stringstr4 = “abc”  String str5 = str4 +“def”;


6.   String类的构造器

》String(byte[] bytes) 将字节数组转化为字符串(查询编码表)

 正数查询ASCII码表

 负数查询平台自带码表

 Java常用API—String类_第1张图片

 结果:

 

》 String(byte[] bytes, int offset,int length)

  offset:数组的起始索引

  length:要截几个

》 String(char[] value)将字符数组转化为字符串(不查询码表)

》String(char[] value, int offset,int count)起始索引,个数


7.   String类的方法

》  int length():返回字符串的长度

》  String substring(int beginIndex, int endIndex):截取字符串

Java常用API—String类_第2张图片

 结果:


 也就是说:含头不含尾。

》  Stringsubstring(int beginIndex):后面全要

》  booleanstartsWith(String prefix):判断一个字符串是不是另一个字符串的前缀

》  booleanendsWith(String prefix)

Java常用API—String类_第3张图片

 结果:

 

》  boolean contains(String s):判断一个字符串中是否包含另一个字符串

》  intindexOf(char ch):查找一个字符,在字符串中第一次出现的索引

》  byte[]getBytes():将字符串转成字节数组(查询编码表)

Java常用API—String类_第4张图片

 结果:

如果字符串为汉字,则会查询平台编码

Java常用API—String类_第5张图片

结果:我的平台编码为UTF-8,使用三个字节表示一个汉字

如果将平台编码改为GBK,则为


因为GBK,用两个字节来表示一个汉字。

》  char[]toCharArray() 将字符串转成字符数组(与构造器相反)

》  booleanequals(Object) 判断字符串中的字符是否完全相同,如果完全相同则返回true。

》  booleanequalsIgnoreCase(String s)忽略大小写,判断字符串中的字符是否相同

结果是:

》  StringtoUpperCase() 将字符串全改为大写

》  StringtoLowerCase() 将字符串全改为小写

》  charcharAt(int index) 返回指定索引处的char值

你可能感兴趣的:(Java基础)