初识Java -- 字符串、static关键字

字符串、static关键字

一、字符串

API当中说:Java程序当中的所有字符串面值(如“abc”)都作为此类的实例实现。
就是说:程序当中所有的双引号字符串,都是String类的对象。(就算没有new,也照样是)

特点:

  1. 字符串的内容用不可改变。【重点】
  2. 正是因为字符串不可改变,所以字符串是可以共享使用的。
  3. 字符串效果上相当于是char[]字符数组,到那时底层原理是byte[]字节数组。

1.字符串的创建

创建字符串的常见3+1种方式

public String() // 创建一个空白字符串,不含有任何内容。
public String(char[] array) // 根据字符数组的内容,来创建对应的字符串。
public String(byte[] array) // 根据字节数组的内容,来创建对应的字符串。
// 一种直接创建:
String str = "Hello"; // 右边直接创建用双引号
// 注意:直接写上双引号,就是字符串对象。

2.基本方法的使用

字符串比较
字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池中。

对于基本类型来说,==是进行数值比较的。
对于引用类型来说,==是进行【地址值】的比较。
(双引号直接写的字符串在常量池当中,new的不在池当中。)

==是进行对象的地址值比较,如果确实需要字符串内容比较,可以使用两个方法:

  1. public boolean equals(Object obj)
    参数可以是任何对象,只有参数是一个字符串并且内容相同的才会给true;否则返回false

注意事项:
1.任何对象都能用Object进行接收。
2.equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果是一样的
3.如果比较双方一个常量一个变量,推荐把常量字符串写在前面。
推荐:“abc”.equals(str) 不推荐:str.equals(“abc”)

  1. public boolean equalsIgnoreCase(String str)
    忽略大小写,进行内容比较。

与获取相关的常用方法

获取字符串当中含有的字符个数,拿到字符串长度。
public int length()
将当前字符串和参数字符串拼接成为返回值的字符串。
public String concat(String str)
获取指定索引位置的单个字符。(索引从0开始)
public char charAt(int index)
查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1值。
public int indexOf(String str)

使用举例:

public static void main(String[] args) {
   
    // 获取字符串长度
    int length = "helloword".length();
    System.out.println(length); // 9

    // 拼接字符串
    String str1 = "Hello";
    String str2 = "word";
    System.out.println(str1.concat(str2)); // Helloword

    // 索引字符
    String str4 = "happyok";
    System.out.println(str4.charAt(4)); // p

    // 查找参数字符串在本字符串当中首次出现的索引位置
    // 如果没有返回-1值
    String str5 = "helloword";
    System.out.println(str5.indexOf("w")); // 5
    System.out.println("happy".indexOf("aaa")); // -1
}

字符串截取

你可能感兴趣的:(java)