• 字符串String


    字符串String思维导图

     创建字符串

    String类即字符串类型,像基本数据类型一样使用,用双引号括起来进行声明。在Java中用String类的构造方法来创建字符串变量。

    1.String()

    一个String对象,可表示一个空字符序列。

    例 :使用String()方法初始化一个新创建的String对象。

    String s=new String();

    2.String(char a[])

    用一个字符数组a创建String对象。

    例 :使用String(char a[])方法创建String对象。

    char a[]={'g','o','o','d'};

    String s=new String(a);

    等价于String s=new Sring("good")

                    //String
            
            String str3="字符串常量";
            
            String str="字符串常量";
            
            char[]c=new char[]{'我','很','好'};
            
            String str4=new String(c);
            
            System.out.println("str4="+str4);

    字符串操作

    一.字符串连接

    1.多个字符串连接

    连接多个字符串时,在每两个连接的字符串之间用"+"相连,"+"就是字符串的连接符,连接之后生成一个新的字符串。

    例 :使用"+"运算符完成对多个字符串的连接。

    String s1=new String("hello");//声明String对象是s1

    String s2=new String("world");//声明String对象是s2

    String s=s1+" "+s2;//将对象s1和s2连接后的结果赋值给s

    将s1、空格和s2进行连接,运行结果是"hello world".

    Java中的字符串不能分开在两行中写。如果一个字符串太长,需要将这个字符串分在两行上书写,此时可以使用"+"将两个字符串联起来,并在加号处换行。

    2.连接其它数据类型

    在字符串和其他数据类型连接时,同样使用"+"连接符,连接之后的返回值是字符串。

    当其他数据类型与字符串相连时会自动将其转换成字符串类型,然后进行连接。

    只要“+”运算符的一个操作类型是字符串,编译器就会将另外的操作类型转换成字符串形式,所以应谨慎地将其他数据类型与字符串相连。

    获取字符串信息

    字符串变量是一个对象,可以通过相应的方法获取字符串的有效信息,如获取字符串的长度,获取指定字符串的索引位置等。

    1.获取字符串长度

    使用String类的length()方法可获取声明的字符串对象的长度。

    str.length();

    str:指定的字符串对象。

    返回值:返回指定字符串的长度。

    例 :使用length()方法得出字符串的长度。

    String s=“We are students”;

    System.out.println("字符串的长度是:"+s.length());

    获取字符串“We are students”的长度,运行结果是"字符串的长度是:15",很明显在计算字符串长度时字符串中的空格也被计算在内了,这点应该注意。

    //字符串信息
            
            str="字符串常量字符串常量";
            
            System.out.println("字符串长度="+str.length());

    2.获取指定子符的索引位置

    String类提供了indexof()和lastindexof()方法来获取指定字符的索引位置,不同的是,indexof()方法返回的是搜索的字符首次出现位置的索引,而lastindexof()方法返回的是搜索的字符最后出现位置的索引。

    (1)indexof()方法

    调用字符串的indexof()方法搜索s时,会从字符串的起始位置依次搜索,返回s首次出现位置的索引,如果没有检索到字符串s,返回-1.

    str.indexof(substr)

    str:任意字符串对象

    substr:要搜索的字符。

    返回值:返回字符序列中第一次出现该字符的索引。

    //字符串信息

    str="字符串常量字符串常量";


    String str="字符串常量"; //查找字符串中子字符串的位置,返回找到之后的索引值 System.out.println("常字的位置="+str.indexOf("常")); System.out.println("常量的位置="+str.indexOf("常量")); //查找不到,返回-1 System.out.println("我的位置="+str.indexOf("我")); System.out.println("最后常字的位置="+str.lastIndexOf("常"));//还是从前面往后数

    (2)lastindexof()方法

    调用字符串的lastindexof()方法搜索s时,会从字符串的起始位置依次搜索,返回s最后出现位置的索引,如果没有检索到字符串s,返回-1.

    str.lastindexof(substr)

    str:任意字符串对象。

    substr:要搜索的字符串。

    返回值:返回字符序列中最后出现的该字符的索引。

    如上图所示、

    3.获取指定索引位置的字符

    使用String类的charAt()方法可获取指定索引处的字符,返回字符的索引。

    str.charAt(int index)

    str:任意字符串

    int index:整型值,用于指定要返回字符的下标

    返回值:返回指定索引位置的字符

    //获取字符
            
            char c1=str.charAt(0);
            System.out.println("c1="+c1);

    判断字符串

    1.判断字符串是否相等

    (1)equals()方法

    使用equals()方法对字符串进行比较时是严格区分大小写的,在此条件下,如果两个字符串仍具有相同的字符和长度,则返回true,否则返回false。

    str.equals(String otherstr)

    str:参与比较的一个字符串对象

    otherstr:参加比较的另一个字符串对象

    返回值:返回boolean类型

         String str3="字符串常量";
            
            String str="字符串常量";
            
            char[]c=new char[]{'我','很','好'};
            
            String str4=new String(c);
            
            System.out.println("str4="+str4);
            
            String str1=new String("字符串常量");//构造方法
            
            String str2=new String("字符串常量");//new开辟新的内存空间
            
            System.out.println("str="+str);
            System.out.println("str1="+str1);
            System.out.println("str2="+str2);
            
            System.out.println("str1和str2是否==:"+(str1==str2));
            System.out.println("str和str1是否==:"+(str==str1));
            System.out.println("str和str2是否==:"+(str==str2));
            System.out.println("str和str3是否==:"+(str==str3));
            
            //==运算,比较的是内存地址是否相等
            
            System.out.println("str1和str2是否相同:"+str1.equals(str2));
            System.out.println("str和str1是否相同:"+str.equals(str1));
            

  • 相关阅读:
    Codeforces 791B. Bear and Friendship Condition 联通快 完全图
    SHU oj 422 风力观测 线段树
    hdu 5833 Zhu and 772002 高斯消元
    Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) E. Cards Sorting 树状数组
    Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) D. Office Keys time limit per test2 seconds 二分
    Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) E. DNA Evolution 树状数组
    Educational Codeforces Round 25 E. Minimal Labels 拓扑排序+逆向建图
    hdu 3864 D_num Pollard_rho算法和Miller_Rabin算法
    hdu 3861 The King’s Problem trajan缩点+二分图匹配
    Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo 矩阵快速幂优化dp
  • 原文地址:https://www.cnblogs.com/cycanfly/p/5228014.html
Copyright © 2020-2023  润新知