美文网首页Java 杂谈程序员计算机杂谈
【Java学习笔记】(二)字符串(多图)

【Java学习笔记】(二)字符串(多图)

作者: 胖若两人_ | 来源:发表于2017-12-09 22:45 被阅读0次

    文章来自我的博客

    正文之前

    字符串String),是由零个或多个字符组成的有限序列。一般记为 s = a1a2...an(0 ≤ n ≤ ∞)它是编程语言中表示文本的数据类型
                            ——Wikipedia

    本文将会介绍:

    Java字符串基本概念
    字符串基本操作


    正文

    Java字符串基本概念

    1. String类
    2. 字符串不可变性
    • Java并没有内置的字符串类型,字符串由 String 类库提供(每个双引号的内容都是字符串的一个实例)

    • Java字符串是 不可变 的,任何看似改变字符串的操作其实都是创建一个 新的 字符串

    substring() 方法将在下文介绍,此处代码含义:
    生成字符串 s1 :Hello ,截取字符串,此处所得到的字符串是新生成的,并没有在 s1 直接改变


    将字符串作为方法的参数时,都会自动复制一份引用,将 s1 拷贝至 s2 时,只是传递一个复制的引用,将 s2 改变时,其实只是改变了 s2 复制的引用

    关于字符串的不变性,一定要牢记在心!


    字符串基本操作

    1. 子串
    2. 字符串比较
    3. 字符串分割
    4. 字符串拼接
    5. 字符串转换

    1. 子串

    在Java中,用 substring() 来生成一个字串,先看看官方的API:

    substring(0,2)表示截取位置从0到2的字符(不包括2),并生成子串

    substring(2)表示从截取位置从2到字符串末尾的字符,并生成子串(substring(0)所生成的字符串的内容和原字符串相同)


    2. 字符串比较

    • 关于字符串,比较方式有两种:
    1. equals()方法
    2. 等号比较(==)
    equals()方法:
    • equals()方法比较的是两个字符串的内容是否相同:
    • equalsIgnoreCase()是一种特殊的比较方式:忽略大小写
    • compareTo()方法也是比较的一种:

    返回值为 int 类型:第一个字符串长度减去第二个字符串长度

    等号比较(==) :

    直接用等号比较:比较的是两个字符串的位置,千万不要用等号来比较两个字符串的内容(或许很多内容相同的字符串的拷贝将分布在不同位置)

    经过一系列操作后,虽然 s1s2 内容相同,但是位置却不同了:


    3. 字符串分割:

    split(String regex)将参数作为分割元素,划分字符串,生成多个子串,并存放于数组内:

    split(String regex, int limit)表示了另一种分割字符串的方法,参数limit作为存放子串的数组的最大空间:

    1. limit > 0:数组的大小为limit的值,字符串切分的次数为limit的值,不管是否按要求完成切分

    2. limit < 0:数组的大小为任意,字符串切分的次数为任意,直到将字符串按要求完成切分

    3. limit = 0:数组的大小为任意,字符串切分的次数为任意,直到将字符串按要求完成切分,并将数组末尾的空字符串删去

    public static void main(String[] args){
            String s1 = "1oo:2:3:4:5oo";
            String[] s2 = s1.split("o",2);
            String[] s3 = s1.split("o",0);
            String[] s4 = s1.split("o",-2);
            for (String  i: s2) {
                if(i.equals("")){
                    System.out.println("this is an empty string");  //显示出空字符串
                }
                System.out.println(i);
            }
            System.out.println("--------------------");
            System.out.println();
            for (String  i: s3) {
                if(i.equals("")){
                    System.out.println("this is an empty string");  //显示出空字符串
                }
                System.out.println(i);
            }
            System.out.println("--------------------");
            System.out.println();
            for (String  i: s4) {
                if(i.equals("")){
                    System.out.println("this is an empty string");  //显示出空字符串
                }
                System.out.println(i);
            }
            System.out.println("--------------------");
        }
    

    4. 字符串拼接

    • 关于字符串的拼接,有3种方式:
    1. 重载操作符(+)
    2. StringBuffer.append()方法
    3. String.concat()方法
    重载操作符(+):

    将操作符中的加号(+)重载之后可作为字符串连接的方式

    StringBuffer.append()方法

    StringBuffer为可变长度的,可以一直扩容,如果在字符串经常改变的情况下,使用StringBuffer是更为合适的

    String.concat()方法

    由于concat()方法返回String类型,所以可以一直拼接,在这次拼接中,总共生成了 4 个字符串

    5. 字符串转换

    有时需要在Integer类型和String类型之间互相转换,接下来说说这几种方法:

    Integer -> String :
    String.valueOf(int i)
    Integer.toString(int i)

    String -> Integer
    Integer.parseInt(String s)
    Integer.valueOf(String s)

    Integer -> String
    String -> Integer

    关于字符串的基本知识就到这里啦!

    相关文章

      网友评论

        本文标题:【Java学习笔记】(二)字符串(多图)

        本文链接:https://www.haomeiwen.com/subject/eckuixtx.html