Java常用API(String类)

时间:2022-07-25
本文章向大家介绍Java常用API(String类),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Java常用API(String类)

概述:

java.lang.String 类代表字符串。Java程序中所有的字符串文字(例如 "abc" )都可以被看作是实现此类的实例

1. 字符串不变:字符串的值在创建后不能被更改

String s1 = "abc"; 
s1 += "d"; 
System.out.println(s1); 
// "abcd" 
// 内存中有"abc","abcd"两个对象,s1从指向"abc",改变指向,指向了"abcd"。

这里我们就通过一个内存图来更好的向大家解释

首先我们来写一段简单的代码,然后画出该代码的内存图来帮助大家理解

 1 public class Test {
 2     public static void main(String[] args) {
 3        String str1="123";
 4        String str2="123";
 5        String str3=new String("123");
 6        System.out.println(str1==str2);//true
 7        System.out.println(str1==str3);//false
 8        System.out.println(str2==str3);//false
 9     }
10 }

首先我给大家引入一个字符串常量池的概念

什么是字符串常量池呢,如上图

String str1=="123"

String str2=="123"

这样子命名的字符串的值就会被存入字符串常量池,而String str3=new String("123")这样new 出来的则不会

顾str1==str3的值为false,而str1==str2的结果则为true,下面通过一张图带大家更加深刻的去理解

当使用String str1="XXXXX"格式命名的时候,会先去字符串常量池中找,如果没有再创建,这样极大的

减小了内存的浪费

下面我来介绍几个String类的常用方法

1判断字符串内容是否相等的方法

public boolead equals(Object anObject)

2忽略大小写判断字符串内容是否相同的方法

public boolean equalsIgnoreCase (String anotherString)

 1 public class Test {
 2     public static void main(String[] args) {
 3        String str1="abc";
 4        String str2="abc";
 5        String str3="ABC";
 6         System.out.println(str1.equals(str2));//true
 7         System.out.println(str1.equals(str3));//false
 8         System.out.println(str1.equalsIgnoreCase(str3));
 9 
10     }
11 }

获取功能的方法

public int length() 返回字符串长度

public String concat (String string) 将指定字符串连接到该字符串末尾

public char charat(int index) 返回指定索引处的char值

public int indexOf(String str) 返回指定字符串第一次出现的地方

public String substring (int beginIndex) 剪取字符串,字符串的范围为从begin到末尾

 1 package cn.itcast;
 2 
 3 public class Test {
 4     public static void main(String[] args) {
 5        String str1="abc";
 6        String str2="abc";
 7         System.out.println("字符串长度是:"+str1.length());
 8         String concat = str1.concat(str2);
 9         System.out.println("连接后的字符串:"+concat);
10         System.out.println("第一个字母:"+str1.charAt(0));
11         System.out.println("b第一次出现地方的索引:"+str1.indexOf("b"));
12         String substring = str1.substring(1);
13         System.out.println("截取后的字符串:"+substring);
14     }
15 }

结果

转换功能的方法

public char[] toCharArray() 将字符串转换为数组

public byte[] getbytes() 将字符串转换为新的字节数组

public String replace(CharSequence target,CharSequence replace) 替换字符串中的指定字符

 1 public class Test {
 2     public static void main(String[] args) {
 3        String str1="abc";
 4        char[] chars = str1.toCharArray();
 5        byte[] bytes = str1.getBytes();
 6         System.out.println("转换为数组:");
 7         for (int i = 0; i < chars.length; i++) {
 8             System.out.print(chars[i]+",");
 9         }
10         System.out.println();
11         System.out.println("转换为字节数组:");
12         for (int i = 0; i < bytes.length; i++) {
13             System.out.print(bytes[i]+",");
14         }
15         System.out.println();
16         String replace = str1.replace("a", "A");
17         System.out.println("替换后的字符串:"+replace);
18     }
19 }

结果

分割方法

public String[] split(String regex)将字符串按照指定的分隔符分隔成数组

package cn.itcast;

import com.alibaba.druid.sql.visitor.SQLASTOutputVisitorUtils;

public class Test {
    public static void main(String[] args) {
       String str1="aa,bb,cc";
        String[] split = str1.split(",");
        System.out.println("以逗号分隔:");
        for (int i = 0; i < split.length; i++) {
            System.out.println(split[i]);
        }

    }
}

结果

以上就是有关字符串的一些基本知识,如果有错误还请各位批评指正