栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

第五章 字符串

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第五章 字符串

5.1 string类

在 Java 基本数据类型一节中,我们已经知道 Java 中有两大数据类型:一个是基本数据类型,另一个是引用数据类型。字符串(String)便属于引用数据类型。字符串在 Java 程序中无处不在,其实我们在第一个 Java 程序中就已经使用过了字符串,打印语句中双引号中的Hello World就是一个字符串:System.out.println("Hello World")。

1.声明字符串

String a;        //声明一个字符串变量a
String a,b;        //声明两个字符串变量啊a、b
2.创建字符串

创建一个String对象,并初始化一个值。String类是不可改变的,一旦创建了一个String对象,它的值就不能改变了。

给字符串变量赋值有很多方法

引用字符串常量(直接赋值)

利用构造方法实例化

利用字符数组实例化

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

 

5.2 连接字符串

我们可以使用加法运算符+将字符串和任意其他的数据类型进行连接操作。

除了“+”运算符,“+=”同样可以实现字符串拼接。

1.连接字符串

 

2.连接其它字符类型

 

5.3 提取字符串信息 1.获取字符串长度 str.length()

获取字符串长度

2.获取指定的字符 str.charAt()

指定索引处的字符返回

 

3.获取字符串索引位置 indexOf(String str)

查找字符在字符串中的位置,该方法用于返回参数字符串s在指定字符串中首次出现的索引位置,当调用字符串的indexOf()方法时,会从当前的字符串的开始位置搜索s的位置;如果没有检索到字符串s,该方法返回值是-1

 

indexOf(String str, int fromIndex)

返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -1。

 

public int lastIndexOf(String str)

该方法用于返回参数字符串s在指定字符串中最后一次出现的索引位置,当调用字符串的lastIndexOf()方法时,会从当前的字符串的开始位置搜索s的位置,并将最后一次出现s的索引位置返回

 

indexOf(String str, int fromIndex)

返回从 fromIndex 位置开始查找指定字符在字符串中第一次出现处的索引

 

4.判断字符串首尾内容 startsWith(String prefix)

 

startsWith(String prefix, int toffset)

 

endsWith(String suffix)

 

5.获取字符数组

toCharArray()方法可以将字符串转换为一个字符数组。

 

6.判断子字符串是否存在

字符串的contains()方法可以判断一个字符串中是否存在另一个字符子串。

 

5.4 字符串的操作 1.截取字符串

String substring()方法:实现截取字符串,利用字符串的下标索引来截取(字符串的下标是从0开始的,在字符串中空格占用一个索引位置)

substring(int beginlndex)

截取从指定索引位置开始到字符串结尾的子串

 

substring(int beginlndex, int endlndex)

从beginIndex开始,到endIndex结束(不包括endIndex)

 

2.字符串替换 replace(CharSequence target, CharSequence replacement)

将指定的字符/字符串oldchar全部替换成新的字符/字符串newChar 

replaceAll(String regex, String replacement)

使用给定的参数 replacement替换字符串所有匹配给定的正则表达式的子字符串

 


replaceFirst(String regex, String replacement)

使用给定replacement 替换此字符串匹配给定的正则表达式的第一个子字符串
regex是正则表达式,替换成功返回替换的字符串,替换失败返回原字符串。

 

3.字符串分割

String[] split():根据匹配给定的正则表达式来拆分字符串,将分割后的结果存入字符数组中。

split(String regex)

regex为正则表达式分隔符, . 、 $、 | 和 * 等转义字符,必须得加 \;多个分隔符,可以用 | 作为连字符。

package five;

public class five20 {
	public static void main(String[] args) {
		String str="a1b2,c,d e f|gh";//创建字符串,包含多种类型字符 
		String[] a1= str.split(",");// 使用“,”分割 
		String[] a2= str.split(" ");// 使用空格分割
		String[] a3= str.split("\|");// 使用“|”分割
		String[] a4= str.split("\d");// 使用正则表达式分割,本行用数字分割
		//同时用“,”空格、“|”、数字分割,用符号“|”连接所有分隔符 
		String[] a5= str.split(",| |\||\d");
		System.out.println("str的原值:["+str+"]");//显示str的原值
		//使用for-each循环展示“,”分割的结果 
		System.out.print("使用","分割:");
		for (String b:a1){
		System.out.print("["+b+"]");
		}
		System.out.println(); //换行 
		//使用for-each循环展示空格分割的结果 
		System.out.print("使用空格分割:");
		for (String b:a2) {
		System.out.print("["+b+"]");
		}
		System.out.println();
		// 使用for-each循环展示“!”分割的结果
		System.out.print("使用"|"分割:");
		for (String b:a3) {
		System.out.print("["+b+"]");
		}
		System.out.println();
		//使用 for-each循环展示数字分割的结果 
		System.out.print("使用数字分割:");
		for(String b:a4){
		System.out.print("["+b+"]");
		}
		System.out.println();
		//使用for-each循环展示所有分隔符同时分割的结果 
		System.out.print("同时使用所有分隔符:"); 
		for (String b:a5) {
		System.out.print("["+b+"]");
		}
		System.out.println();
	}
}

 

split(String regex, int limit)

limit为分割份数

 

4.大小写替换 toLowerCase()

将字符串中的所有字符从大写字母改写为小写字母


toUpperCase()

将字符串中的所有字符从小写字母改写为大写字母

 

5.去除空白内容

 trim()方法可以直接返回字符串的副本,忽略首尾处空白。

 

6.比较字符串是否相等

equals(String str)

将此字符串与指定的对象比较,区分大小写


equalsIgnoreCase(String anotherString)

将此 String 与另一个 String 比较,不考虑大小写

 

7.格式化字符串

String 类中,可以使用 format() 方法格式化字符串,该方法有两种重载形:
       format(String format, Object… args)使用本地语言环境,制定字符串格式和参数生成格式化的新字符串

       format(Locale locale, String format, Object… args)使用指定的语言环境,制定字符串格式和参数生成格式化的字符串

日期和时间字符串格式化

 常用日期格式化转换符:

 时间格式化转换符:

 

 常见的日期和时间组合的格式:

 

 转换符:

 

常规类型格式化

 

package five;

public class five32 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str1 = String.format("%5d", 123); // 让字符串输出的最大长度为5,不足长度在前端补空格
		System.out.println("输出长度为5的字符串|"+ str1 + "|");
		String str2 = String.format("%-5d",123);// 让字符串左对齐 
		System.out.println("左对齐|"+str2+"|");
		String str3 = String.format("%#o",33);//在8进制前加一个0 
		System.out.println("33的8进制结果是:"+str3);
		String str4 = String.format("%#x",33);// 在16进制前加一个0x
		System.out.println("33的16进制结果是:"+str4);
		String str5 = String.format("%+d",1);// 显示数字正负号
		System.out.println("我是正数:"+str5);
		String str6 = String.format("%+d",-1);//显示数字正负号
		System.out.println("我是负数:"+str6);
		String str7 = String.format("% d", 1); // 在正数前补一个空格
		System.out.println("我是正数,前面有空格"+str7);
		String str8 = String.format("% d", -1); // 在负数前补一个负号
		System.out.println("我是负数,前面有负号"+str8);
		String str9 = String.format("%05d",12);// 让字符串输出的最大长度为5,不足长度在前端补0
		System.out.println("前面不够的数用0填充:"+ str9);
		String str10 = String.format("%,d",123456789);// 用逗号分隔数字
		System.out.println("用逗号分隔:"+ str10);
		String strll = String.format("%(d", 13);// 正数无影响
		System.out.println("我是正数,我没有括号:"+strll);
		String str12 = String.format("%(d",-13); // 让负数用括号括起来
		System.out.println("我是负数,我有括号的:"+str12);
	}

}

 

 

5.5 可变字符串 1.StringBuffer类的常用方法 append(String str)方法

在字符串末尾追加字符串。

setCharAt(int index, char ch)方法

将当前字符串中下标为index位置的单个字符删除。

 

insert(int offset, String str)方法

插入字符串并返回调用对象的引用,就是自己。

 

reverse()方法

字符串反转。

 

delete(int start,int end)方法

删除字符串。

 

其他方法

 

2.StringBuilder类的使用方法

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

 

3.StringBuffer、StringBuilder、String之间的关系 StringBuffer、StringBuilder、String互相转换
package five;

public class five40 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String str = "string";
		StringBuffer sbf =new StringBuffer(str); // String转换成StringBuffer
		StringBuilder sbd =new StringBuilder(str); // string转换成StringBuilder
		str=sbf.toString();// stringBuffer转换成String
		str = sbd.toString();// stringBuilder转换成string
		StringBuilder bufferToBuilder = new StringBuilder(sbf.toString());
		//String Buffer转换成StringBuilder
		StringBuffer builderToBuffer = new StringBuffer(sbd.toString());
		//String Builder 转换成stringBuffer
	}

}
StringBuffer、StringBuilder、String的不同之处

String 是字符串常量, StringBuffer 和 StringBuilder 是字符串变量。 StringBuffer 是线程安全的, StringBuilder 是非线程安全的。 具体来说 String 是一个不可变的对象,每次修改 String 对象实际上是创新新对象,并将引用指向新对象。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781259.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号