Java 第五章总结

本文详细介绍了Java中的String类,包括声明、创建字符串,连接字符串,提取字符串信息的各种方法,如获取长度、字符、子字符串,判断首尾内容,转换大小写,去除空白以及字符串操作如截取、替换、分割等。此外,还探讨了可变字符串StringBuffer和StringBuilder的使用及它们与String的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

5.1 String类

5.1.1 声明字符串

5.1.2创建字符串

5.2 连接字符串

5.2.1 连接字符串

5.2.2 连接其他数据类型

5.3 提取字符串信息

5.3.1 获取字符串长度

5.3.2 获取指定的字符

5.3.3 获取子字符串索引位置

5.3.4 判断字符串首尾内容

5.3.5 获取字符数组

5.3.6 判断子字符串是否存在

5.4 字符串的操作

5.4.1 截取字符串

5.4.2 字符串替换

5.4.3 字符串分割

5.4.4 大小写转换

5.4.5 去除空白内容

5.4.6 比较字符串是否相等

5.4.7 格式化字符串

5.5 可变字符串

5.5.1 StringBuffer 类的常用方法

5.5.2 StringBuffer 类的使用方法

5.5.3 StringBuffer 、StringBuilder、String之间的关系

5.6 小结


5.1 String类

5.1.1 声明字符串

"我是字符串" , "123456789" , "上下 左右 东西 南北"

 声明一个字符串变量a, 以及声明两个字符串变量a,b。 代码如下:

String a;

String a, b;

 注意:

在不给字符串变量赋值的情况下, 默认值为null, 就是空对象,如果此时调用String的方法会发生空指针异常。

5.1.2创建字符串

字符串是常量它可以显示任何文字信息,字符串的值在创建之后不能更改。在Java语言中,单引号中的内容表示字符,例如's'。而双引号的内容表示字符串,例如,"我是字符串"。

 '  ' 字符        1个

" " 字符串     多个

 1 、引用字符串常量

String a =  " 建团一百周年"

String b = ''百年校庆",c = "时间就是金钱"

String str1,str2;

str1 = "we are students";

srt2 = "we are students";

 当两个字符床对象应用相同的常量时,就具有相同的实体,内存示意图如图5.1所示。

2、利用构造方法实例化

例如,使用new关键字创建String对象。代码如下:

 String a = new String (" 我爱清汤小肥羊 ");

String b = new String (a);

 3、利用字符数组实例化

例如,定义一个数组charArray,使用该字符数组创建一个字符串,代码如下:

char[ ] charArray = { ' t ' ,' i ' , ' m ', ' e ' };

String a = new String (charArray);

4、提取字符数组中的一部分创建字符串对象

例如, 定义一个字符数组 charArray, 从该字符数组索引3的位置开始,提取两个元素,创建字符串。代码如下:

char[ ] charArray = { ' 时 ' , ' 间 ' , ' 就 ' , ' 是 ' , ' 金 ' , ' 钱 ' };

String a = new String( charArray, 3 , 2 };

例 5.1  编写一段代码,声明多个字符串变量,用不同的赋值方法给这些字符串变量赋值。

5.2 连接字符串

5.2.1 连接字符串

连接字符串就是字符串操作中较简单的一种。可以对多个字符串进行连接,也可使字符串与其他数据类型进行连接。

String a = "建团";

String b = "建团一百周年";

b = a + b;     //b = "建团一百周年"

b += a;         //b = b +  a ="建团一百周年"

5.2.2 连接其他数据类型

String a = "建团";

int b = 100;

String c = "周年";

String d = a + b + c; //d = "建团一百周年"

a += (b+c);

1.b+c ="100周年"

 

本例实现的是将字符串常量与整型变量booktime和浮点型变量practice相连后的结果出输,booktime和·practice都不是字符串,当他们与字符串连接时会自动调用toString()方法将其转换成字符串形式参与连接。

5.3 提取字符串信息

5.3.1 获取字符串长度

str .  length();   //长度 字符串名 

 例如,定义一个字符串a,使用length()方法获取其长度。代码如下:

String a = " 建团一百周年";

int b = a.length();

5.3.2 获取指定的字符

charAt(String index)方法可将指定索引处的字符返回。语法如下:

str . charAt(index);

str:任意字符串对象。

index:char值的索引。

5.3.3 获取子字符串索引位置

1、indexOf(String str)

a . indexOf(substr);

a:任意字符串对象

substr:要搜索的字符串

 查找字符e在字符串str中首次出现的索引位置。代码如下:

String str = "we are the world";

int size = str,indexOf('e');    //size的值为1

 

String a = "";

int b = a.indexOf("a"); //0

int c =  a.IastIndexOf("a") //8

int d = a.indexOf("a", 3); //4

int e = a.lastIdexOf("a" , 7);//6

 

 2、indexOf(String str, int formIndex)

a.indexOf(str ,formIndex);

formIndex:开始搜索的索引位置

3、public int lastIndexOf(String str)

返回指定子字符串中最右边出现处的索引。语法如下:

a.lastIndexOf(str);

 4、lastIndexOf(String str,int formIndex)

返回指定子字符串在此字符串中最后一次出现的索引,从指定的索引开始反向搜索

a.lastIndexOf(str, formIndex);

5.3.4 判断字符串首尾内容

String a = "建团一百周年";

Boolean b= a.startwith("建团");//判断是否以建团结尾·

Boolean c  = a.endswith("建团")  // 判断是否以建团开始

5.3.5 获取字符数组

Char[ ] ch = 字符串名.toCharArray();

String a = "建团一百周年";

Char[ ] ch = a.toCharArray();

5.3.6 判断子字符串是否存在

Char[ ] ch = 字符串名.toCharArray();

String a = "建团一百周年";

Char[ ] ch = a.toCharArray();

 

5.4 字符串的操作

5.4.1 截取字符串

str.substring(beginIndex,endIndex);

str:任意字符串

beginIndex:起始索引(包括)

endIndex:结束索引(不包括)

 

 

5.4.2 字符串替换

1、str . replace(oldstr,newstr) //(老,新);

String a = "建团一百周年"

regex:要被替换的字符序列。

replacement:替换后的字符序列。

 2、a.replace("团","校");

         repalceAll();

 

5.4.3 字符串分割

该语法可根据给定的分隔符对字符串进行拆分,支持正则表达式,最后返回一个字符串数组。

str.split(regex)

字符串.split(子串<可传正则表达时>,次数):

5.4.4 大小写转换

大转小:字符串.toLowerCase();

小转大:字符串.toUpperCase();

 

5.4.5 去除空白内容

字符串.trim(); 

 5.4.6 比较字符串是否相等

a ==b            位置

a. equals(b)     值

a.equalsIgnoreCase(b)

 

 

5.4.7 格式化字符串

String format("转换符",....)

 日期和时间字符串格式化

Date d = new Date

String str = String.format("转换符",d)

 

 

5.5 可变字符串

常规类型格式化

String str = string.format("转换符", . . .)

可变字符串

String

String str = "Hello";

str = "Helloworld";

StringBuffer  有锁  安全  慢

StringBuffer  sbf = new StringBuffer("Hello");

sbf = sbf.append("world");

StringBuilder         不安全   快

 

5.5.1 StringBuffer 类的常用方法

追加     字符串名.append(需要追加的值);

设定某一个元素值     字符串名.setCharAt(序号,值);

插入   字符串名.insert(序号,值);

反转   字符串.reverse();

删除   字符串名.delete(前序号,后序号).

5.5.2 StringBuffer 类的使用方法

StringBuffer类和StringBuilder类具有兼容的API,所以两者的使用方法也相同。

5.5.3 StringBuffer 、StringBuilder、String之间的关系

1.区别:

String                             常量                 

StringBuffer                    变量           有锁                    安全             慢

StringBuilder                   变量                                     不安全          快

 2、转换:

String ->StringBuffer                           new StringBuffer     对象

String ->StringBuilder                          new  StringBuilder  对象

StringBuffer  ->String                           .toString()方法

StringBuffer->String                              .toString()方法

StringBuffer < - >  String   < - >  StringBuilder

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值