目录
一、声明字符串
二、创建字符串
三、引用字符串常量来创建字符串变量
四、连接字符串
五、获取字符串信息
六、操作字符串
六、判断字符串的开始结尾
七、判断字符串是否相等(内存,内容是否一致,返回类型为boolean)
7.1、equalsIgnoreCase()
7.2、Equals()
九、按字典顺序比较两个字符串
9.1、compareTo();
9.2、CompareTo()方法只有在equals(Object)方法返回true时才返回
十、字符串的大小转换
十一、字符串分割
11.1、Split(String sign);
11.2、Split(String sign,int limit)
十二、格式化字符串
12.1、Format()创建格式化的字符串
12.2、format(Local l,String format,Object...args)
12.3、日期和时间字符串格式化
12.3.1、常用日期格式转换符
12.3.2、时间格式化
12.4、常规类型格式化
12.4.1、常规转换符
十三、使用正则表达式
13.1 正则表达式中的元字符
在Java语言中字符串必须包含在(双引号中)””(两种方式)
String a = “abcd”;
Stirng a = new string(“abcd”) 两者可视与等价String str = [null]
Str 标识符,字符串的变量名称
String 变量的类型
Null 如果省略,表示str未初始化,否则表示声明的字符串值等于null
声明String必须初始化才能使用,否则编译器会报错(变量未被初始化错误)
String类的常用构造方法(数组)
(1)String(char a[])
Char a[] = {“g”,“o”,“o”,“d”}
String s = new String(a)
等价于
String s = new String(“good”);
(2)String(char[]value)
该构造方法可分配一个新的String对象,使其表示字符数组中所有元素连接的结果
Char a[] ={“s”,“t”,“u”,“d”,“e”,“n”,“t”};
String s = new String(a);
等价于String s = new String(“student”);
(3)String(char a[] int offset,int length);
Char a[]={“s”,“t”,“u”,“d”,“e”,“n”,“t”};
String s = new String(a,2,4);
等价于
String s = new String(“uden”);
Offset表示开始截取字符串的位置
Length表示截取字符串的长度
String str1,str2;
str1 = “We are students”
str2 =”We are students”
Str1与str2引用相同的字符串常量具有相同的实体
(1)连接多个字符串
(2)多个字符串使用“+”连接字符串
(3)Java中一对双引号内的字符串不能分开两行
(4)连接其他数据类型
可以与基本类型数据进行连接,连接是基本数据类型直接转换为字符串类型
(1)获取字符串长度:str.length();
//将字符串str的长度输出
System.out.println("字符串str的长度:" + str.length());
(2)字符串查找:
(1)indexOf();搜索字符或字符串首次出现的索引位置
(2)lastIndexOf();搜索字符或字符串最后一次出现的索引位置
获取指定字符串索引位置
//将空字符串在str中的索引位置赋值给变量size
int size = str.lastIndexOf(" ");
//将变量输出
System.out.println("空字符在字符串str中的索引位置是:" + size)
获取指定位索引位置的字符
Str.charAt(int index)
String str = "helloworld";//定义str字符串
char mychar = str.charAt(5);//将字符串str中位置是5的字符串返回
(1)获取字符串:
(1)String的subString()方法对字符串进行截取
Str.substring( int beginIndex)
beginIndex:截取字符的索引开始位置
String str = "Hello world";
String substr = str.substring(3);
Substring(int beginIndex,int endIndex)
endIndex:截取字符索引的结束位置
String substr = str.substring(0,3)
(2)去除空格:trim()忽略前导空格,和尾部空格
Str.trim();
Str为任意字符串对象
String str = “java class”;
System.out.printin(“字符串原来的长度:” + str.length());
System.out.printin(“去掉空格后的长度” + str.trim().length());
(3)字符串替换:str.replace(char oldchar, char newchar);
String str = "address";
String newstr = str.replace("a","A");
System.out.println(newstr);
(1)startsWith();判断当前字符串的前缀是否是是参数指定的字符串
Str.startsWith(Stirng prefix);
Prefix:前缀的字符
(2)endsWith();判断当前字符串的后缀是否是是参数指定的字符串
Str.endsWith(String suffix);
Sufifix:后缀字符
String mun = “22045612”;
Boolean b = num1.startsWith(“22”);
String num1 ="22015614";
String num2 = "214021378";
boolean b =num1.startsWith("22");
boolean b2 = num1.endsWith("78");
boolean b3 = num2.startsWith("22");
boolean b4 = num2.endsWith("78");
System.out.println("字符串num1是以“22”开始的吗?" + b);
System.out.println("字符串num1是以“78”结束的吗" + b2);
System.out.println("字符串num2是以“22”开始的吗?" + b3);
System.out.println("字符串num2是以“78”结束的吗?" + b4);
字符串比较是忽略大小写
Str.equalsIgnoreCase(String otherstr)
Str,Otherstr:是参加比较的字符串对象
字符串比较是区分大小写
Str.equals(String otherstr)
String s1 = new String("abc");
String s2 = new String("ABC");
String s3 = new String("abc");
boolean b= s1.equals(s2);
//使用equals比较s1,s2
boolean b2 = s1.equalsIgnoreCase("s2");
//使用equalsIgnoreCase比较s1,s2
System.out.println(s1 + "equals" + s2 +":" + b);
System.out.println(s1 + "equalsIgnoreCase" + s2 + ":" + b2);
该比较基于字符串各个字符的Unicode值
Str.compare To(String otherstr)
Str,othestr 参加比较的两个字符串对象
String str2 = new String("a");
String str3 = new String("c");
System.out.println(str + "compareTo" + str2 + ":" + str.compareTo(str2));
//将str与str2的比较结果输出
System.out.println(str + "compareTo" + str3 + ":" +str.compareTo(str3));
//将str与str3的比较结果输出
(1)toLowerCase();
String newstr = str.toLowerCase();
//实现小写转换
(2)toUpperCase();
String newstr2 = str.toUpperCase();
//实现大写转换
Sign为分割字符串的分割符,也可是正则表达式
Limit:限制的分割次数
String str = new String("abc,def,ghi,gkl");
String[] newstr = str.split(",");
for(int i=0;i< newstr.length;i++){
System.out.println(newstr[i]);
}
String[] newstr2 = str.split(",",2);
for(int j=0;j
十二、格式化字符串
12.1、Format()创建格式化的字符串
format(String format,Object...args);
Format 格式字符串
Args 格式字符串中由格式说明符引用的参数,如果还有格式说明符以外的参数,则忽略这些额外的参数,此参数的数目是可变的,可以为0
12.2、format(Local l,String format,Object...args)
L :格式化过程中要应用的语言环境,如果1为null,则不进行本地化
Format:格式化字符串
Args:
12.3、日期和时间字符串格式化
12.3.1、常用日期格式转换符
转换符
说明
示列
%te
一个月中的某一天(1--31)
2
%tb
指定语言环境的月份简称
Feb(二月)
%tB
指定语言环境的月份全称
February(二月)
%tA
指定语言环境的星期几全称
Monday(三月)
%ta
指定语言环境的星期几简称
Mon(三月)
%tc
包括全部日期的时间信息
星期二 三月 25 13:27:22
%tY
4位年份
2008
%tj
一年中的第几天
085
%tm
月份
03
%td
一个月中的第几天(01 -- 31)
02
%ty
2为年份
08
Date date = new Date();
String year = String.format("%tY",date);
String month = String.format("%tb", date);
String day = String.format("%td", date);
System.out.println("今年是:" + year + "年");
System.out.println("现在是:" + month);
System.out.println("今天是:" + day + "号");
12.3.2、时间格式化
时间格式转化符
转换符
说明
示例
%tH
2位数字的24小时制的小时(00 -- 23)
14
%tI
2位数的12小时制的小时(01 -- 12)
05
%tk
2位数字的24小时制的小时(0 -- 23)
5
%tl
2位数字的12小时制的小时(1 --12)
10
%tM
2位数的分钟(00 -- 59)
02
%tS
2位数的秒数(00 --60)
12
%tL
3位数字的毫秒数(000 --999)
920
%tN
9位数的毫秒数
%tp
指定语言环境下上午或下午的标记
PM(英文),上午(中文)
%tz
相对于GMT RFC 82 格式的数字区偏移量
+ 0800
%tZ
时区缩写形式的字符串
CST
%ts
1970-01-01 00:00:00至现在的经过的秒数
%tQ
1970-01-01 00:00:00至现在的经过的毫秒数
时间格式化 时间格式化
转换符
说明
示例
%tF
“年-月-日”格式(四位年份)
%tD
“年/月/日”格式(两位年份)
%tc
全部日期和时间信息
星期二 三月 25 16:20:00 CST 2008
%tr
“时:分:秒:PM(AM)”格式(12时制)
03:33:15 下午
%tT
“时:分:秒:”格式(24时制)
15:13:50
%tR
“时:分”格式(24时制)
15:12
12.4、常规类型格式化
12.4.1、常规转换符
转换符
说明
示例
%b %B
结果被格式化为布尔型
True
%h %H
结果被格式化为散列码
A05A5198
%s %S
结果被格式为字符串类型
“abcd”
%c %C
结果被转为字符类型
‘a’
%d
结果被格式化为十进制
%o
结果被格式化为八进制
%x %X
结果被格式化为十六进制
%e
十三、使用正则表达式
13.1 正则表达式中的元字符
元字符
正则表达式中的元字符写法
意义
\d
\\d
代表任意一个字符
\D
//D
代表0 --9的任何一个数字
\s
\\s
代表空白字符,“\t”,”\n”
\S
\\S
代表非空白字符
\w
\\w
代表可用作标识符的字符,但不包括“$”
\W
\\W
代表不可用作表示符的字符
\p{Lower}
\\p{Lower}
代表任何小写字母a --z
\P{Upper}
\\p{Upper}
代表大写字母A --Z
\p{ASCII}
\\p{ASCII}
ASCII字符
\{Alpha}
\\p{Alpha}
字符字母
\p{Digit}
\\p{Digit}
十进制数字,即0 --9
\p{Alnum}
\\p{Alnum}
数字或字母字符
\p{Punct}
\\p{Punct}
表点符号
\p{Graph}
\\p{Graph}
可见字符:[\p{Alnum}\p{Punct}]
\p{Print}
\\p{Print}
可打印字符:[\p{Graph}\x20]
\p{Blank}
\\p{Blanck}
空格或制表符:[\t]
\p{cntrl}
\\{cntrl}
控制字符:[\x00-\xlF\x7F]
使用正则表达式必须要使用转意字符(\),否则代表的是普通意思
元字符:正则表达式中可以用[](中括号)括起若个字符来表示,该元字符可以代表方括号中任意一个元字符
- [^456]:代表4,5,6之外的任意一个字符
- [a - r]:代表a - r中的任意一个字符
- [a-d&&[^bc]]:代表字母a,d(差运算)
- [a-o&&[def]]:代表字母d,e,f(交运算)
- [a - e[g - z]]:代表a -e 或g -z 中的任何一个字母(并运算)
正则表达式中允许使用限定修饰符来限定元字符出现的次数 限定修饰符
限定修饰符
意义
实例
?
0次或1次
A?
*
0次或多次
A*
+
一次或多次
A+
{n}
正好出现n次
A{2}
{n,}
至少出现n次
A{3,}
{n,m}
出现n到m次
A{2,6}
Matches():检测匹配的字符串是否满足给定的字符串;调用此方法的 str.matches(regex) 形式与以下表达式产生的结果完全相同Pattern.matches(regex,str )
Regex:匹配字符串的正则表达式
if(str1.matches(regex)){
//判断字符串变量是否与正则表达式匹配
System.out.println(str1 + "是一个合法的E_mail地址格式" );
}
字符串生成器
成功创建的字符串,其长度是固定的,内容是不能被改变的和编译的。
(1)SringBuilder() 初始容量16个字符,可指定字符长度,能根据附加的字符自动增长容量(当附加的字符长度超过16个字符)
toString()可动态的执行添加,删除,插入等编辑操作
Int,char,boolean,String,double,通过该方法的多个重载形式,可实现接受任何类型的数据
append(content); 向字符串生成器中追加内容
Insert(int offset arg);向字符串生成器中的指定位置插入数据
Delete(int start,int end);移除此序列的子字符串中的字符,该子字符串从指定的start处开始,一直到索引end -1处的字符,如果不存在这样的字符,则一直到序列的尾部,如果start等于end,则不发生任何改变
快捷键
新建:shift + alt + N
关闭当前编辑框:ctrl + w
关闭所有编辑框:ctrl + shift + w
查找/替换:ctrl +F
你可能感兴趣的:(Java基础篇)