Java学习之旅第一季-14:数据类型之字符串

字符串是零个或多个字符组成的序列。在实际开发中处理最多的数据就是字符串,在 Java 程序中,字符串由 java.lang.String 类的对象来表示。但是需要注意的是,字符串类型并不是属于Java中支持的 8 种基本数据类型。它是引用数据类型,具有自己的属性和方法。

本小节主要关注字符串字面量的使用以及字符串的基本操作。并不探讨与之相关的其他话题,比如其内部存储及不可变性等

14.1 字符串声明与赋值

在Java中声明字符串使用String这个JDK内置的类,注意String中第一个字母是大写的,这也符合Java中类的命名规范:

String s1;     // 声明一个字符串变量s1,但是未显式赋初始值

为了给字符串变量赋值,可以使用字面量字面量,它的表示有以下两种形式:

  • 使用双引号的字面量,其中可以使用转义字符(序列)
  • 文本块,Java 15正式引入

首先看一下最常见的字面量:

String s1 = "";                      // 一个空字符串
System.out.println(s1);
String s2 = "Hello 老谭!";            // 若干字符组成的字符串
System.out.println(s2);
String s3 = "1+1=2\t12+2=4\t4+4=9";  //带有制表符转义字符的字符串
System.out.println(s3);
String s4 = "这是第一行\r\n这是第二行";  //带有换行转义字符的字符串
System.out.println(s4);

14.2 文本块

在Java 15之前,如果遇到有一些特殊场景需要处理多行的文本,常见的写法如下:

String s1 = "<html>\n" +
            " <body>\n" +
            " <p>Hello World.</p>\n" +
            " </body>\n" +
            "</html>\n";

经过字符串拼接及换行转义字符,输出的结果就是一个规范的HTML页面代码。但是代码中可读性并不好,特别是如果页面内容较多的时候。

为了方便表示多行字符串。Java 15引入了文本块的概念,它的目的是:

  • 简化跨越多行的字符串,避免对换行等特殊字符进行转义,简化编写Java程序
  • 增强Java程序中字符串的可读性

上面的代码如果使用文本块,它的语法形式如下:

String s2 = """
        <html>
            <body>
                <p>Hello World.</p>
            </body>
        </html>
        """;

可以看到字符串字面量使用三对双引号包含文本内容,且内容可读性非常好。不过使用文本块需要注意的是:

  • 引号之间不能有空格

  • 开始的三个引号后必须换行,不能是这样的写法:

    String s2 = """<html>
                        <body>
                            <p>Hello World.</p>
                        </body>
                    </html>
                    """;
    

14.3 字符串的基本操作

1、字符串拼接:两个或多个字母直接使用数学运算符 + 即可进行拼接

String s1 = "Hello "+ "Java"+"!";
 System.out.println(s1);         //输出 Hello Java!

2、获取字符串的长度,这里使用到String这个类所提供的方法length:

String s2="Hello Java !";
System.out.println(s2.length());   // 输出 12

14.4 小结

本小节对String作为数据类型如何声明及如何使用字面量为其赋值进行了介绍,同时也介绍了Java在简化多行字符串表示时引入的文本块语法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值