一.String类
1.声明字符串
字符串可以通过以下语法格式来声明:
String str;
String为指定该变量为字符串类型,str为该字符串变量的名称
2.创建字符串
String类的常用构造方法如下:
String(char a[])
该方法用一个字符数组a创建String对象,代码如下:
char a[] = {'g','o','o','d'};
String s =new String(a);
该代码等价于:String s = new String("good");
String(char a[], int offset, int length)
该方法提取字符串数组a中的一部分创建一个字符串对象。参数offset表示开始截取字符串的位置,length表示表示截取字符串的长度。代码如下:
char c[] = {'s','t','u','d','e','n','t'};
String s = new String(a,2,4);
该代码等价于:String s = new String("uden")
二.连接字符串
1.字符串相连接
使用“+”运算符可实现连接多个字符串的功能。“+”运算符可以连接多个String对象并产生一个新的String对象
1.先连接一副对联的上,下联,再分行输出在控制台上:
2.字符串与其他类型相连接
字符串也可同其他基本数据类型相连接。如果将字符串同其他数据类型数据进行连接,会将其他数据类型的数据直接转换成字符串。
2.统计每天的阅读和上机时间:
三.获取字符串信息
1.获取字符串长度
使用String类的length()方法可获取声明的字符串对象的长度。语法如下:
str.length();
2.字符串查找
indexOf(String s)
该方法用于返回参数字符串s在指定字符串中首次出现的索引位置。当调用 String 类的 indexOf()方法时,会从当前字符串的开始位置搜索 s 的位置。如果没有检索到字符串 s,该方法的返回值是-1语法如下:
str.indexOf(substr)
lastIndexOf(String str)
该方法用于返回指定字符串最后一次出现的索引位置。当调用 String 类的 lastIndexOf()方法时,会从当前字符串的开始位置检索参数字符串 str,并将最后一次出现 str 的索引位置返回。如果没有检索到字符串 str,该方法返回-1。语法如下:
str.lastlndexOf(substr)
3.用两种方式判断字符串的长度:
3.获取指定索引位置的字符
使用 charAt0方法可将指定索引处的字符返回。语法如下:
str.charAt(int index)
4.查看指定索引位置上的字符:
四.字符串操作
1.获取子字符串
通过String类的substring()方法可对字符串进行截取。substring0方法被两种不同的重载形式,来满足不同的需要。这些形式的共同点就是都利用字符串的下标进行截取,且应明确字符串下标是从0开始的。
substring(int beginIndex)
该方法返回的是从指定的索引位置开始截取直到该字符串结尾的子串。语法如下:
str.substring(int beginindex)
substring(int beginlndex, int endindex)
该方法返回的是从字符串某一索引位置开始截取至某一索引位置结束的子串。语法如下:
substring(int beginlndex, int endindex)
5.《将进酒》的作者是哪位诗人? :
2.去除空格
trim()方法返回字符串的副本,忽略前导空格和尾部空格。语法如下:
str.trim()
6.去掉字符串首、尾的空格:
3.字符串替换
replace()方法可实现将指定的字符或字符串替换成新的字符或字符串。语法如下:
str.replace(CharSequence target, CharSequence replacement)
7.将单词中的字母a替换为字母A:
4.判断字符串的开始与结尾
startsWith()方法
该方法用于判断当前字符串对象的前缀是否为参数指定的字符串。语法如下:
str.startsWith(String prefix)
endsWith()方法
该方法用于判断当前字符串是否为以给定的子字符串结束。语法如下:
str.endsWith(String suffix)
8.判断字符串是否以指定的内容开始或结束:
5.判断字符串是否相等
对字符串对象进行比较不能简单地使用比较运算符“==”,因为比较运算符比较的是两个字符串的地址是否相同。即使两个字符串的内容相同,两个对象的内存地址也是不同的,使用比较运算符仍然会返回 false。使用比较运算符比较两个字符串,代码如下:
String tom = new String("l am a student");
String jerry = new String("I am a student");
boolean b=(tom == jerry);
equals()方法
如果两个字符串具有相同的字符和长度,则使用 equals()方法进行比较时,返回 true。否则,返回false。语法如下:
str.equals(String otherstr)
equalslgnoreCase()方法
使用equals()方法对字符串进行比较时是区分大小写的,而使用equalsIgnoreCase0方法是在忽略了大小写的情况下比较两个字符串是否相等,返回结果仍为 boolean 类型。语法如下:
str.equalslgnoreCase(String otherstr)
9.判断“abc”与“ABC”是否相等:
6.按字典顺序比较两个字符串
compareTo()方法为按字典顺序比较两个字符串,该比较基于字符串中各个字符的 Unicode 值,按字典顺序将 String 对象表示的字符序列与参数字符串所表示的字符序列进行比较。如果按字典顺序此 String 对象位于参数字符之前,则比较结果为一个负整数; 如果按字典顺序此 String 对象位于参数字符之后,则比较结果为一个正整数;如果这两个字符串相等,则结果为 0。语法如下:
str.compareTo(String otherstr)
10.判断字母b的位置:
7.字母大小写转换
String 类的 toLowerCase()方法可将字符串中的所有大写字母改写为小写字母,而 toUpperCase0方法可将字符串中的所有小写字母改写为大写字母。
toLowerCase()方法
该方法将字符串中的所有大写字母转换为小写。如果字符串中没有应该被转换的字符,则将原字符串返回;否则将返回一个新的字符串,将原字符串中每个大写字母都转换成小写,字符串长度不变语法如下:
str.toLowerCase();
toUpperCase()方法
该方法将字符串中所有的小写字母转换为大写。如果字符串中没有应该被转换的字符,则将原字符串返回:否则返回一个新字符串,将原字符串中每个小写字母都转换成大写,字符串长度不变。语法如下:
str.toUpperCase();
11.字母大小写转换
8. 字符串分割
使用split0方法可以使字符串按指定的分割字符或字符串进行分割,并将分割后的结果存放在字符串数组中。split0)方法提供了以下两种字符串分割形式。
split(String sign)
该方法可根据给定的分割符对字符串进行拆分。语法如下:
str.split(String sign)
split(String sign,int limit)
该方法可根据给定的分割符对字符串进行拆分,并限定拆分的次数。语法如下:
str.split(String sign,int limit)
12.按要求分割“192.168.0.1”:
五.格式化字符串
String类的静态 format()方法用于创建格式化的字符串。format()方法有两种重载形式。
format(String format,Object...args)
该方法使用指定的格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用本地默认的语言环境。语法如下:
str.format(String format,Object...args)
format(Local l,String format,Object...args)
该方法使用指定的语言环境、格式字符串和参数返回一个格式化字符串,格式化后的新字符串使用其指定的语言环境。语法如下:
str.format(Local l,String format,Object...args)
1.日期和时间字符串格式化
在应用程序设计中,经常需要显示日期和时间。如果想输出满意的日期和时间格式,一般需要编写大量的代码、经过各种算法才能实现。format()方法通过给定的特殊转换符作为参数来实现对日期和时间的格式化。
日期格式化
先来看一个例子。返回一个月中的天数,代码如下:
Date date = new Date();
String s = String.format("%te", date);
13. 按照格式输出今天的年、月、日:
时间格式化
使用format()方法不仅可以完成日期的格式化,也可以实现时间的格式化。时间的格式化转换符要比日期的格式化转换符重多、更精确,它可以将时间格式化为时、分、秒、毫秒等
14. 按照格式输出当下的时、分、秒:
格式化常见的日期时间组合
格式化日期与时间组合的转换符定义了各种日期时间组合的格式
15.按照格式输出当下的年、月、日:
2.常规类型格式化
常规类型格式化可应用于任何参数类型
16.使用转换符获取表达式的结果 :
六.使用正则表达式
正则表达式通常被用于判断语句中,用来检查某一字符申是否满足某一格式。正则表达式是含有些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。
在正则表达式中,可以使用方括号括起若干个字符来表示一个元字符,该元字符可代表方括号中的任何一个字符。
17.验证 Email 地址是否“合法”:
七.字符串生成器
创建成功的字符串对象,其长度是固定的,内容不能被改变和编译。虽然使用“+”可以达到附加新字符或字符串的目的,但“+”会产生一个新的 String 实,会在内存中创建新的字符对象。如重复地对字符串进行修改,将极大地增加系统开销。而JDK 新增了可变的字符序列 StingBuilder类,大大提高了频繁增加字符串的效率。
18.效率比拼:
通过这一实例可以看出,两种操作执行的时间差距很大如果在程序中频繁地附加字符串,建议使用 StringBuilder类新创建的 StringBuilder 对象初始容量是 16个字符,可以自行指定初始长度。如果附加的字符超过可容纳的长度,则StringBuilder 对象将自动增加长度以容纳被附加的字符。若要使用 StringBuilder 类最后输出字符串结果,可使用 toString()方法。利用 StringBuilder 类中的方法可动态地执行添加、删除和插入等字符串的编辑操作。该类的常用方法如下。
1.append()方法
该方法用于向字符串生成器中追加内容。通过该方法的多个重载形式,可实现接受任何类型的数据,如 int、boolean、char、String、double 或者另一个字符串生成器等。语法如下:
append(content);
2. insert(int offset, arg)方法
该方法用于向字符串生成器中的指定位置插入数据内容。通过该方法的不同重载形式,可实现向字符串生成器中插入 int、float、char 和 boolean 等基本数据类型的数据或其他对象。语法如下:
insert(int offset arg);
3. delete(int start , int end)方法
移除此序列的子字符串中的字符。该子字符串从指定的 start 处开始,一直到索引 end-1 处的字符。如果不存在这种字符,则一直到序列尾部。如果 start 等于 end,则不发生任何更改。语法如下:
delete(int start , int end);