字符序列(1)

字符序列

一:字符序列

1:定义

多个字符按照一定的顺序组成的列表就叫做字符序列。

2:分类

String 表示字符串
​
StringBuffer  字符串缓冲区,是线程安全的
​
StringBuilder  字符串构造器 是非线程安全

字符串 + 字符串 表示拼接字符串

转义字符 \;

3:字符串是引用数据类型,默认值为null

二:String

1:文本块

可以将字符内容以我们输入的形式按原样输出。

"""
字符内容
"""

输入形式1:

 String text = """
                序号   姓名
                1      张三
                2      李四
                """ ;
        System.out.println(text);

2:输入形式2

 String text = """
                序号   姓名
                1      张三
                2      李四""" ;
        System.out.println(text);

1692705076810

3:输入形式3

输出一个 "\"

 String text = """
                \\
                """ ;
        System.out.println(text);

image-20230822195511401

4:输入形式4

输出一个 “

代码

  String text = """
                "
                """ ;
        System.out.println(text);

image-20230822200350465

5:输入形式5

输入一个hi ,然后换行,再按一个空格后输入"Bob"

String text = """
                hi
                 "Bob"
                """ ;
        System.out.println(text);

image-20230822200816507

2:字符串具有不可变特性

字符串不可变的原因:

是因为字符串内容存储内容的元素是由final修饰的,所有字符串不可变。

3:创建对象

*//* *创建了几个对象
*String s1 = new String("abc");

该语句创建了两个对象,一个是字符串常量池对象abc,另外一个是new了一个新的空间,是字符串对象。

4:构造方法摘要

Sting方法

咱们在声明字符串时,使用字符串对象的方式来声明时使用的方法。共有 15 个构造

方法名及描述

1:Sting() 初始化新创建的String对象,使其表示空字符系列。
2:String(byte[] bytes) 通过使用平台的默认字符集解码指定的字节数组来构造新的Sting
3:String(byte[] bytes, Charset charset) 构造一个新的String用指定的字节的数组解码charset 
4:String(byte[] bytes, String charsetName) 构造一个新的String用指定的字节的数组解码charsetName 
5:String(char[] value) 构造一个新的String由指定的字符的数组构成 
6:String(String original) 初始化新创建的String对象,使其表示与参数相同的字 符序列; 换句话说,新创建的字符串是参数字符串的副本 
7:String(StringBuffer buffer) 分配一个新的字符串,其中包含当前包含在字符串缓冲区 参数中的字符序列 
8:String(StringBuilde rbuilder) 分配一个新的字符串,其中包含当前包含在字符串构建器 参数中的字符序列

编译时优化

String d = "a" + "b"; // 编译时会优化为 ab

5:方法摘要

(1):返回字符串

toString() String   返回字符串

(2): 去掉首尾空格

trim()  String    去掉首尾空格

(3):转化为大写

toUpperCase()    String     转换大写

(4):转化为小写

toLowerCase()    String     转换小写

(5)从指定索引开始(包括)到指定索引结束(不包括)

substring(int beginIndex, int endIndex)   String     从指定索引开始(包括)到指定索引结束(不包括)

(6): 从指定索引开始(包括)截取字符串并且返回

substring(int beginIndex)   String     从指定索引开始(包括)截取字符串并返回

(7):判断字符串是否是空串

isEmpty 当且仅当字符串长度为0时返回 true

(8):如果字符串为空或仅包含空白代码点,则返回true,否则返回false。

isBlank 当字符串长度为0或字符串中全是空白字符时都是 true

特例代码

public static void main(String[] args) {
        // 空串 != null
        String str = ""; // 空串
        String s = null;
​
        System.out.println(str.length()); // 0
        System.out.println(str);
//        System.out.println(s.length()); // NullPointerException
​
        str.isEmpty(); // length == 0
        System.out.println(str.isEmpty()); // true
        str = "\t";
        System.out.println(str.length()); // 1
        System.out.println(str.isEmpty());// false
        str = "";
        System.out.println(str.isBlank()); // true
        str = "\t";
        System.out.println(str.length()); // 1
        System.out.println(str.isBlank());// true
​
        str = " \t   hello  word    \t";
        System.out.println(str.length()); // 21
        // 去除两端空格返回新的字符串
//        str = str.trim();
        str = str.strip();
​
        // 去除前边的空白
//        str = str.stripLeading();
        // 去除后边的空白
//        str = str.stripTrailing();
        // 去除缩进
//        str = str.stripIndent();
        System.out.println(str.length());// 11
        System.out.println(str);
​
        // 随机访问
        str = "hello world";
        // 获取指定字符
        char c = str.charAt(0);
        System.out.println(c);
​
        // 子串
        // [beginIndex ~)
        String sub = str.substring(5);
        // [beginIndex, endIndex)
        sub = str.substring(3, 10);
        System.out.println(sub); // lo worl
​
        // 比较字符串  0  小于0 大于0
        String a = "Abc";
        String b = "abc";
​
        System.out.println(a.compareTo(b)); // -32
        // 忽略大小写
        System.out.println(a.compareToIgnoreCase(b)); // 0
​
​
    }

1:区别:

isEmpty 和 isBlank 区别 
​
isEmpty 当且仅当字符串长度为0时返回 true
​
isBlank 当字符串长度为0或字符串中全是空白字符时都是 true
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值