【JAVA学习笔记】05 字符串使用

2018.3.25

字符串

java中由双引号( “”)包围的都是字符串,不能作为其他数据类型来使用

字符串必须进行初始化,否则会报变量未被初始化错误。

连接字符串

使用“+”运算符可实现连接多个字符串的功能。“+”运算符可以连接多个运算符并产生一个字符串对象。

连接其他数据类型

字符串也可同其他基本数据类型连接,如果将字符串同这些数据类型连接,会将这些数据直接转换成字符串。原理是自动调用的toString()方法。

获取字符串信息

int size = str.length();可以获取字符串对象的长度。

字符串的查找

字符串类提供了两个查找字符串的方法

indexOf()与lastIndexOf()方法。

str.indexOf(String s)方法返回的是搜索的字符或字符串首次出现的索引位置

当调用该方法时,会从当前字符串的开始位置搜索s的位置;如果没有检索到s,返回-1.

str.lastIndexOf(String s)方法返回的是搜索的字符或字符串最后一次出现的位置。

当调用该方法时,从当前字符串的开始位置检索参数字符串s,并将最后一次出现s的索引位置返回,如果没有返回-1.

如果lastIndexOf()方法参数是的indexOf( “”),中间没有空格,则返回结果和str.length()相同。

获取指定索引位置的字符

charAt()方法可以将指定索引初的字符返回
str.charAt(int index)参数为指定要返回字符的下标

字符串操作

substringint beginIndex)

可对字符串进行截取,参数下标从0开始。返回是从指定的索引位置开始截取直到该字符串结尾的字串。

substring(int beginIndex,int endIndex)

返回的是从字符串某一索引位置开始截取至某一索引位置结束的字串。

去除空格

str.trim()

返回的是字符串的副本,忽略前导空格和尾部空格

字符串替换

str.replace(char oldChar,char newChar)
oldCHar:要替换的字符或字符串。
newChar:用于替换原来字符串的内容。

可实现将制定的字符或字符串替换成新的字符或字符串。(大小写必须一致)

返回的是一个新的字符串,如果字符串oldChar没有出现在该独享表达式中的字符串序列中,则将原字符串返回。

判断字符串的开始与结尾

boolean startsWith()与endsWith()方法

str.startsWith(String prefix)方法

该方法用于判断当前字符串对象的前缀是否为参数指定的字符串。

str.endsWith(String suffix)方法

该方法用于判断当前字符串是否为以给定的字字符串结束。

判断字符串是否相等

对字符串对象进行比较不能用比较运算符“==”,因为比较的是两个字符串的地址是否相同。即使字符串内容相同,两个对象的引用的内存地址也是不同。会返回false。

判断字符串内容是否相等,应用用boolean equals()方法和equalsIgnoreCase()方法

判断两个字符串具有相同的字符和长度,区分大小写
str.equals(String otherstr)

忽略大小写判断是否相等
str.equalsIgnoreCase(String otherstr)

按字典书序比较两个字符串

在otherstr之前返回负整数,在之后返回正整数,相等,结果为0int str.compareTo(String otherstr)方法为按字典书序比较两个字符串,是按照Unicode值

字母大小写转换

str.toLowerCase()大写->小写
str.toUpperCase()小写->大写

String str1 = "SQWRaddad";
String str2 = "sqeqrAf.sqeqrAf";
System.out.println(str1.toLowerCase());

字符串分割

str[] = spilt(str sign)方法可以使字符串按指定的分割字符或字符串内容进行分割,并将分割后的结果存放在字符串数组中。

split(String sign)
该方法可根据给定的分隔符对字符串进行拆分
sign:为分割字符串的分隔符,也可使用正则表达式。

split(String sign,int limit)
limt限制分割次数。

String str2 = "sqeqrAf.sqeqrAf";
	String[] str4 = str2.split("\\.", 2);
	for (String string : str4) {
		System.out.println(string);
	}

格式化字符串

String类的静态format()方法用于创建格式化的字符串。format()方法有两种重载形式。

str.format(String format,Object...args)
format:格式字符串。
args:格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略这些额外的参数。此参数的数目是可变的,可以为0.

format(Local 1,String format,Object...args)
1:格式化过程中要应用的语言环境。如果1null,则不进行本地化。

日期和时间字符串格式化。

format()方法通过给定的特殊转换符作为参数来实现对日期和时间的格式化。

1.日期格式化

Date date = new Date(); /创建Date对象date
String s = String.format("%te",date); //通过format()方法对date进行格式化、。
转换符 说明 示例
%te 一个月中的某一天(1~31) 2
%tb 指定语言环境的月份简称 Feb(英文)、二月(中文)
%tB 指定语言环境的月份全称 February(英文)、二月(中文)
%ta 指定语言环境的星期几简称 Monday(英文)、星期一(中文)
%tA 指定语言环境的星期几全称 Mon(英文)、星期一(中文)
%tc 包括全部日期和时间信息 星期二 三月 25 13:37:22:22 CST 2008
%tj 一年中的第几天(001~366) 085
%td 一个热月中的第几天(01~31) 03
%tY 4位年份 2008
%tm 月份 03
%ty 2位年份 08

2.时间格式化

转换符 说明 示例
%t row 1 col 2 row 1 col 2
row 2 col 1 row 2 col 2 row 1 col 2

3.格式化常见的日期和时间组合

格式化日期与时间的转换符定义了各种日期时间组合的格式,其中最常用的日和时间的组合格式如表。

转换符 说明 示例
%tF “年-月-日”格式(4位年份) 2008-03-25
%tc 全部日期和时间信息 星期二 三月 25 15:20:00 CST 2008
%tr “时:分:秒 PM(AM)”格式(12时制) 03:22:06 下午
%tT "时:分:秒”格式(24小时制) 15:22:50
%tR “时:分”格式(24) 15:25

正则表达式

正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一格式。 正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符串称之为正则表达式 的元字符。例如“\d”表示数字0~9中的任何一个,“\d”就是元字符。

public class Judge {
	public static void main(String[] args) {
		String regex = "\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}";
		String str1 = "aaa@";
		String str2 = "aaaaa";
		String str3 = "[email protected]";
		
		List list = new ArrayList<>();
		list.add(str1);
		list.add(str2);
		list.add(str3);
		for (String string : list) {
			if (string.matches(regex)) {
				System.out.println(string+"是合法的");
			}
		}
	}
}

对邮件地址的正则表达式:

"\\w+@\\w+(\\.\\w{2,3})*\\.\\w{2,3}"

对手机号的正则表达式:

"\\d{11}"

字符串生成器

StringBuider bf = new StringBuilder("StringBuilder");
bf.insert/append/delete(参数);
syso(bf.toString());

如果在程序中频繁地附加字符串,建议使用StringBuilder,使用最后输出字符串结果, 可使用toString()方法。

利用StringBuilder类中的方法可以动态的执行添加、删除、插入等字符串的编辑操作。

append(content) 
content:要追加到字符串生成器中的内容,可以是任何类型的数据或者对象
insert(int offset,arg) 
向指定位置插入数据内容
delete(int start,int end)
删除一段。

你可能感兴趣的:(JAVA)