• 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]);
            }
    
        }
    }

    结果

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

  • 相关阅读:
    P4342 [IOI1998]Polygon
    P1194 买礼物
    P1363 幻想迷宫
    Installing Wine 1.5: configure: error: Cannot build a 32-bit program, you need to install 32-bit development libraries(转载)
    Linux系统调用之open(), close() (转载)
    undefined reference to 'pthread_create'问题解决(转载)
    linux中的C里面使用pthread_mutex_t锁(转载)
    #if、#ifdef、#if defined之间的区别(转载)
    linux下解压tgz文件(转载)
    linux修改用户主目录的方法 (转载)
  • 原文地址:https://www.cnblogs.com/pjhaymy/p/13255038.html
Copyright © 2020-2023  润新知