Java教程

2021-09-18

本文主要是介绍2021-09-18,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java字符串

(顺序按照Java核心技术)

Java的api中文文档,String的更多相关方法Java 8 中文版 - 在线API中文手册 - 码工具 (matools.com)

一、字符串概念

  1. Java字符串从概念讲就是Unicode字符串。Java没有内置的字符串类型,而是提供一个预定义类:String,每一个用双引号括起来的就是String。

  2. Java的字符串和c语言中的不同。c语言中的字符串是一个字符数组,数组名是一个指针常量。Java字符串类似于char*指针,当修改一个字符串a的时候,系统重新申请一个空间temp,给temp赋好值后,将之前的a指针指向temp。

    从前的内存块不适用后,会由系统进行回收。

  3. Java中字符串代码单元与代码点从0开始计数。

二、子串

  1. String类的substring方法可以从一个较大的字符串中提取出一个字串。

    String a = "hello";
    String ans = a.substring(0,3);  //0开始,包括0不包括3
    

三、拼接

  1. 使用“+”号直接拼接两个字符串。此方法单词之间没有空格,前后次序按照给定的来(a+b)。

    当一个字符串与非字符串进行拼接,后者被直接转化成字符串。(任何一个Java对象都可以转化成为字符串)。

  2. 使用静态方法join

    String ans = String.join("*","H","E","L","L","O");
    //使用*作为分割符。ans=H*E*L*L*O
    
  3. 使用repeat方法。

    String ans = "HELLO".repeat(3);
    //ans = HELLOHELLOHELLO
    

四、修改一个字符串的值

方法:原始字符串a(假定值是“HEELO”),提取a中想要保留的部分,再与其他部分进行拼接。

  1. 一个已经创建好的字符串内容“HELLO”永远不会改变,但可以修改字符串变量a。(让一个装苹果的盒子改装李子,但是不会去修改苹果本身)

  2. 具体的工作方式:字符串共享。

    字符串共享只有字符串字面量共享,+号与substring等操作得到的字符串不会共享。

    多个字符串放在同一个公共的存储池,字符串变量指向存储池相应的位置。

    复制是将一个字符串变量指向一个已经存在的字符串。

五、检测字符串是否相同

  1. 使用equals方法

  2. 如果想要忽略大小写,使用equalsIgnoreCase方法。

  3. 也可以用compareTo方法

    a.equals(b);
    a.equals("hello");
    a.equalsIgnoreCase("Hello");
    a.compareTo("hello");
    
  4. 关于为什么不能使用“==”

    因为Java内部的字符串共享原则,而且Java中字符串本质是个指针,所以==只能比较两个字符串存储的位置是否一样。

    当比较字符串与一个存储位置不同的副本的时候,会返回false。

    **字符串共享只有字符串字面量共享,+号与substring等操作得到的字符串不会共享。**所以比较字符串的一部分是否相同的时候,可能会返回false

空串与null串

  1. 空串是一个长度为 0 且占内存的空字符串(是一个对象),在内存中分配一个空间,可以使用 Object 对象中的方法。
  2. null 是空引用,表示一个对象的值,没有分配内存。(表示目前没有任何一个对象与这个变量相关联)
  3. new String() 创建一个字符串对象的默认值为 “”,String 类型成员变量的初始值为 null。
这篇关于2021-09-18的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!