前言
很长时间没有更新了,自己最近也是玩的有点high,Java的基础内容也是学完了,自己对于Java还是有些盲区,最近在看一些进阶的教程,比如maven编程,Junit等一些核心的内容,那么我今天来谈谈这个string类
一、string类
前面我们谈到了char类型,但是他只能表示单个字符,在c++中其实也出现了string这个概念,字符串类型,它来自cstring或者string的头文件,在Java中string类也和c++中的string是一样的,它在java.lang包中。
二、Stirng类的使用
1.声明字符串
在Java中,字符串一定的包含在一对双引号之间,比如"redbeard""12.23"“哈喽”。而string的声明和c++中一样,string str
。
2.创建字符串
Java的特点就是面向对象的编程思维,所以,他会把字符串也当做也个对象来处理,下面来介绍string类的常用构造方法:
(1)String(char a[])
这是用一个字符数组来创建一个string对象
char a[]={"h","e","l","l","o"};
String s =new String(a);
//这两行代码相当于String s=new String("good");
(2)String(char a[],int offset,int length)
这个初始化是截取char数组的一部分创建一个string对象,参数offset表示开始截取的位置,而length表示截取的长度。
char a[]={"h","e","l","l","o"};
String s =new String(a,2,3);
//这两行代码相当于String s=new String("llo");
(3)关于string类的内存存储结构
String str1,str2;
str1="we are the champion";
str2="we are the champion";
str1和str2都引用相同的字符串常量,具有相同的实体,内存示意图如图
3、连接字符串
使用+可以实现多个字符串的加法,“+”可以连接多个运算符并产生一个string对象。
public static void main(String[] args) {
String str1=new String("hello");
String str2=new String("bi2arRe");
String str=str1+" "+str2;
System.out.println(str);
//最后两行可以简写成System.out.println(str1+" "+str2);
}
演示代码和运行结果如图。算是比较好用的一个功能,我最开始学习的时候,考虑过一个问题,就是如何实现像c++一样在cout返回x+y这样的情况,但是经过测试发现会自动识别加号的意义,对于常用return x+y的同学还是比较友好的。对于+还可以连接不同的数据类型哦。
4、获取字符串信息
1、获取字符串的长度。
String str="we are the champion";
int size=str.length();
2、字符串查找
字符串查找包括indexOf()和lastIndexOf(),前者返回的是字符串首次出现的位置,后者返回是字符串最后出现的位置。
String str="we are the champion";
int size=str.indexOf("e");
3、获取指定索引位置的字符charAt()。
可以根据你想要的索引位置找到这个位置所对应的字符。
4、获取字符串substring()
通过String类中的substring()可以对字符串进行截取,都是利用下标进行索引,
str.substring(int beginIndex);//beginIndex是索引开始的位置,一直到结尾。
str.substring(int beginIndex,int endIndex);//endIndex是截取末尾的索引。
5、trim()出去空格
6、字符串替换replace()
str.replace(char oldChar,char newChar);
//oldChar是要替换的字符串,newChar是用于替换的内容。
6、判断字符串的开始与结尾
str.startsWith(String prefix);//prefix是前缀字符
str.endstsWith(String suffix);//suffix是后缀字符
7、判断字符串是否相等
对于字符串对象,我们无法用==判断其是否相等,所以产生了equals()和equalsIgnoreCase()方法
(1)equals()方法
若连个字符串有着相同的字符和长度,则使用该方法比较时返回true
str.equals(String otherstr);//str和otherstr是要比较的两个字符串。
(2)equalsIgnoreCase()方法
这个方法和上面方法的区别在于这个方法不区分大小写
str.equalsIgnoreCase(String otherstr);//str和otherstr是要比较的两个字符串。
8、字母的大小写转换
(1)toLowerCase()
该方法把String转换为小写,如果都是小写,则将原字符串返回
str.toLowerCase();
(2)toUpperCase()
str.toUpperCase();//将字符串转化成大写。
9、字符串分割
使用split()方法可以是字符串按指定的分割字符或者字符串内容进行分割,并将分割后的结果存在字符串数组中。
(1)split(String sign)
按照分割字符对字符串进行拆分,其中的参数也可以是正则表达式
str.split(String sign);
(2)split(Stirng sign,int limit)
limit限制了拆分的次数
str.split(String sign,int limit);
limit模式匹配次数,如果设置为n,那么根据正则表达式匹配n-1次,得到的结果数组的长度不会大于n,数组的最后一项是最后匹配的分隔符以后的全部内容。
对于这个分割还是很有用的,上学期的课设的音乐播放器,要求歌词滚动,我第一时间就是想到正则表达式,将歌词出现的时间和歌词放在一行,然后进行分割,一半为时间一半为歌词,然后分别读取,这样就实现了歌词的滚动。
总结
对于这节主要讲述了Java的String类的各种方法,对于之后字符串的处理可以调用String库里面的内容进行处理,可以说十分的方便,如有不足请指出,虚心受教,最近在学其他内容更新比较慢,多多体谅- -TKU,很开心能有伙伴一起学习,交流可以加qq:1158455410