美文网首页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学习笔记】(二)字符串(多图)

    文章来自我的博客 正文之前 字符串(String),是由零个或多个字符组成的有限序列。一般记为 s = a1a2....

  • nio

    参考文章 Java Nio Java NIO学习笔记 - NIO客户端时序图 Java NIO学习笔记 - NIO...

  • 正则表达式学习笔记

    简介 笔者的正则的学习笔记和思维导图 用处 字符串匹配 字符串查找 IDE集成 如何学习 分类别记忆 多练习,无他...

  • java io

    参考Java IO学习笔记(一):File类Java IO学习笔记(二):RandomAccessFile类Jav...

  • Java知识之字符串

    Java字符串知识框架图 Java字符串 ** 1. 不可变字符串(String) **** 2. 可变字符串(S...

  • Memento 备忘录模式

    设计原则学习笔记 设计模式学习笔记 作用 使对象可以保存并恢复到某一状态。 类图 Java实现 Android源...

  • 2018-12-04Java第一季

    Java笔记(主要为语法,c/c++相同未写) 学习链接为:Java学习第一季Java学习第二季Java学习第三季...

  • java 基础

    JAVA 字符串 参考资料:一张图让你明白 java string 的 内存分配java 字符串内存分配的分析与总...

  • Singleton 单例模式

    设计原则学习笔记 设计模式学习笔记 作用 创建全局唯一的实例,提供给全局任意的地方使用。 类图 JAVA实现 单...

  • Interpreter 解释器模式

    设计原则学习笔记 设计模式学习笔记 作用 将表达式转化为操作,并且将其拆成最小的单元 类图 Java实现 上面的...

网友评论

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

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