黄阶低级 - 《 Java 核心》- 3.6 字符串 - 修改0次

    xiaoxiao2024-11-17  11

    1、字符串

    Java 字符串就是 Unicode 字符序列

    Java 没有内置的字符串类型,所以在标准 Java 类库中提供了一个预定义类,叫做 String。

    每个用双引号括起来的字符串都是 String 类的一个实例:

    String e = "";//an empty string String greeting = "Hello";

    2、子串

    可以使用 substring 方法,两个参数分别是起始位置,包前不包后。 String greeting = "Hello"; String s = greeting.substring(0, 3); System.out.println(s);// 输出Hel,子串长度为 3-0=3 使用 substring 的一个优点,容易计算子串的长度。

    3、拼接

    Java 语言可以使用 + 号进行字符串拼接,但有更好的方式,后续再讨论。

    4、不可变字符串

    坑:String类没有提供用于修改字符串的方法!

    所以想将字符串 “Hello” 修改为 “Help” ,要这样写: String greeting = "Hello"; greeting = greeting.substring(0, 3) + "p"; System.out.println(greeting);// 输出Help 不可变字符串的优点:编译器可以让字符串共享,如果复制一个字符串变量,原始字符串与复制的字符串共享相同的字符。Java 的设计者认为共享带来的高效率远远胜过提取、拼接字符串所带来的低效率。 String greeting = "Hello"; //有人将 Java 字符串看做是字符串数组,像下面这样: char greeting[] = "hello"; //这种认识是错误的,其实 Java 字符串更加像 char* 指针: char* greeting = "hello"; //当采用另一个字符串替换 greeting 的时候, Java 代码主要进行下列操作: char* temp = malloc(6); strncpy(temp,greeting,3); strncpy(temp + 3,"p!",3);

    5、字符串相等

    判断是否是本身使用 == ,判断是否相等使用 equals

    s.equals(t) , s 和 t 可以是字符串变量,也可以是字符串常量 String greeting = "Hello"; System.out.println("Hello".equals(greeting));// true System.out.println("hello".equalsIgnoreCase(greeting));// true,忽略大小写差别 工作中不要使用 == 运算符检测字符串的相等性,以免程序中出现糟糕的 bug ,从表面上看,这种 bug 很像随机产生的间歇性错误。C++ 的 string 类重载了 == 运算符,但 Java 并没有这么做。

    6、空串和 Null 串

    null 串表示目前没有任何对象与该变量关联空串是一个 Java 对象,有自己的串长度(0)和内容(空)要检查一个字符串既不是 null 串也不是空串: if(str != null && str.length() != 0)//检查一个字符串既不是 null 串也不是空串 而且检查 null 要放在前面,因为在 null 值上调用方法会出现问题。

    7、构建字符串

    有时需要由较短的字符串构建字符串,例如按键或者来自文件中的单词,使用 StringBuilder 或者 StringBuffer 可以提高效率。 StringBuilder builder = new StringBuilder(); builder.append('a'); // 添加单一字符 builder.append("bcd"); // 添加字符串 String completedString = builder.toString(); // 构建字符串 System.out.println(completedString);// 输出 abcd
    转载请注明原文地址: https://ju.6miu.com/read-1293746.html
    最新回复(0)