JAVA基础:String和StringBuffer

JAVA API
Application Programming Interface,应用程序接口,JAVA API是一些预定义的函数。今天学习了String和StringBuffer。

在C语言中,String作为一种基本数据类型,但在JAVA中,String是一种引用数据类型,String是一种类。

1、String

1.1、String类的初始化

1.1.1、使用字符串常量直接初始化

String虽然是一种类,但在声明String类型变量时,却不仅仅只有实例化对象一种方法,一种过程一旦变得频繁,就必定存在简化,String作为一种常用的数据类型,声明它的方法也存在简化,这是我们最初接触的声明方法。

   String str="asdasdas";

1.1.2、使用构造方法初始化字符串对象

  (1)创建一个空字符串:
   String str=new String();
   
  (2)根据指定内容创建字符串
   String str=new String("str");
   
  (3)根据指定字符数组创建字符串对象
   String str=new String(char[] value);

1.2、String类的常见操作

String类包含的方法非常多,我们可以把String当作字符数组,可以通过索引得到索引对应位置的字符,也可以通过字符,得到对应的索引,可以获得字符串对象的长度。
当然,还包括一些复杂方法,例如判断替换截取分割。String类属于比较重要的API,要通过一些练习逐渐掌握常见操作。

1.2.1、基本操作

String str=new String("STR");
	(1)获取字符串长度:str.length();
	(2)根据索引获取值:str.charAt(index);
	(3)根据值获得索引,需要说明的是,获得的是第一次出现时的索引:str.indexOf(int ch/String str);
	(4)与之相反,要获得最后一次出现时的索引,则使用str.lastIndexOf(int ch/String str);

1.2.2、字符串的转换操作

String的构造方法可以直接将字符数组转化为字符串对象,与之对应的,我们也可以将字符串对象转换为字符数组。除此之外,字符的大小写转换,其他数据类型转换为字符串对象等。

(1)字符串转换为字符数组:str.toCharArray();
(2)大小写转换:str.toUpperCase(); 、str.toLowerCase();
(3)基本数据类型转换为String类型:str.valueOf('c'/3/3.0);

1.2.3、字符串的替换和去除空格操作

对用户输入数据进行去除空格和字符串替换处理。

(1)字符串替换:str.replace(oldstr,newstr);
(2)去除空格(只能去除两端的空格,不能去除中间的空格):str.trim();

1.2.4、字符串的判断操作

针对字符串进行判断,是否是空的、是否以某个字符开头或结尾、是否包含某个字符串?

(1)判断是否以指定字符串开头或结尾:str.startsWith("str");、str.endsWith("str");
(2)判断是否包含指定字符串:str.contains("str");
(3)判断是否为空:str.isEmpty();
(4)判断两个字符串是否相等:str.equals(str2);

1.2.5、字符串的截取和分割

(1)字符串的截取:str.substring();
参数为索引,必须有一个起点,如果只有起点,没有终点,将默认终点为最后一个字符。
(2)字符串的分割:str.split();

根据给定正则表达式的匹配拆分此字符串。 
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。 
例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果: 
Regex 结果 
:     { "boo", "and", "foo" } 
o     { "b", "", ":and:f" } 

参数:
regex - 定界正则表达式 
返回:
字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的 
抛出: 
PatternSyntaxException - 如果正则表达式的语法无效

2、StringBuffer

StringBuffer可以称之为字符串缓冲区,虽然String提供了一些方法可以对内容进行更改,但却需要另外声明一个字符串对象,JAVA提供了一个形式上类似于字符数组结构的类,可以改变其本身的内容和长度。

(1)添加操作
1、末尾:str.append(str);
2、指定位置:str.insert(index,str);

(2)删除操作
1、指定位置:str.deleteCharAt(index);
2、指定范围:str.delete(start,end);

(3)修改操作
1、指定位置:str.setCharAt(index);
2、指定范围:str.replace(start,end,str);
3、反转:str.reverse();

3、String类与StringBuffer类的区别

1、String内容长度不可变,StringBuffer可变。
值得注意的是,String类的常用操作并不能改变字符串对象本身,而是重新生成了一个新的字符串对象。

2、String类对象可以使用“+”连接,StringBuffer不行。

3、String类对Object类的equals方法进行了重写,而StringBuffer并没有。

4、总结

String类和StringBuffer各有异同,要根据不同的需求和场景进行选择。
更最要的,是要通过一些有难度的练习增进理解,以便真正掌握。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值