欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

实训篇:第十二天

程序员文章站 2022-03-16 21:35:11
...

1.String、StringBuffer、StringBuilder

String

描述的是文本字符串序列

字符串是不可变的,一个字符串对象一旦被配置,其内容是不可变的

 

1.创建方式:

String str1 = "hello world";

String str2 = new String("hello world");

char[] arr = {'h','e','l','l','o'};

String str3 = new String(arr);

 

2.常见功能(都是这个类内的方法)

判断功能:

equals()    判断两个字符串的内容是否相同/值是否相同

boolean equalsIgnoreCase(String str)    判断是否相等,忽略大小写【验证码】

boolean contains(String str)    判断字符串是否包含

boolean startsWith(String str)    判断字符串是否以特定字符串开始

boolean startsWith(String prefix, int offset)   判断字符串从offset处是否以特定字符串开始

boolean endsWith(String str)    判断字符串是否以特定字符串结束

boolean isEmpty()                      判断字符串是否为空【“”而不是null,这里api说明的是只有.length() == 0时才为真,而.length()是返回的字符数】

 

3.获取功能

int length()    获取字符串长度

char charAt(int index)    获取相应位置的字符,index取值[0,str.length() - 1]

int indexOf(int ch)   找不到返回-1,返回字符第一次出现的索引

int indexOf(String str)    找不到返回-1,返回字符串第一次出现的索引【子字符串才能找到】

int indexOf(int ch, int fromIndex)    从fromIndex开始,...

int indexOf(String str,int fromIndex)    从fromIndex开始,...

String substring(int start)    从某位置开始,到结束位置的子字符串

String substring(int start,int end)     指定开始和截止位置的子字符串,不包含最后一个位置(左闭右开)

 

4.转换功能

String中的定义:

private final char value[];  char是两个字节,byte是一个字节,char可以转为2个byte

private int hash;

private static final long serialVersionUID

 

byte[] getBytes()          能显示的字符/IO中要将char转为0-1表示的二进制数据才能传输,转为byte数组

char[]  toCharArray()   转为char数组

byte[] byteArr = str.getBytes();
System.out.println(Arrays.toString(byteArr));

char[] charArr = str.toCharArray();
System.out.println(Arrays.toString(charArr));
[104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]
[h, e, l, l, o,  , w, o, r, l, d]

static String valueOf(char[] chs)     char数组转为字符串(虽然字符串存储的方式就是char数组,但这把结果存到了一个类中)

static String valueOf(int i)                int转为字符串(static用类名.方法名调用)

String toLowerCase()                       转为小写

String toUpperCase()                       转为大写 

String concat(String str) / +             字符串连接

 

 

5.替换功能

String replace(char oldChar, char newChar)

String replace(CharSequence target,CharSequence replacement)【此处CharSequence可传String】

 

6.去除功能

String trim()          首尾去空格

 

7.按字典比较功能

int compareTo(String anotherString)          字符串在字典中相等-返回0;字符串在字典序中小于传入-返回负值;字符串在字典序中大于传入串-返回大于0的值

 

8.匹配功能

boolean matches(String regex)      是否符合正则表达式regex规则

 

3.正则表达式【不是java特有的,是通用的】【在java api的matches中有对正则表达式的解释】

正则表达式是包含特殊规则的字符串,用正则表达式匹配需要两个参数(规则和被判断字符串)

^:匹配字符串的开始

$:匹配字符串的结束

不用^和$,则被判断字符串只要其中的一部分满足匹配规则即可匹配

[]:匹配一个字符,几个[]匹配几个字符

{n}:长度为n

{n,}:长度至少为n

{n,m}:长度最少为n,最大为m

+:一次或多次

*:0次或多次

?【在限定数量的情况下才表示0-1次,其他情况下还可以表示懒惰模式】:0次或一次

//判断字符串中是否只有一个字符且这个字符是英文字母
^[a-zA-Z]$
//判断字符串中是否有2个字符且是英文字母
^[a-zA-Z]{2}$或者^[a-zA-Z][a-zA-Z]$
//用法比如
String str2 = "a";
String regex = "^[a-zA-Z]$";
System.out.println(str2.matches(regex));
//全英文字母且长度10-15
^[a-zA-Z]{10,15}$
//除上述要求外,以字母开头(第一个是字母),可以包含数字
^[a-zA-Z][a-zA-Z0-9]{9,14}$
//1或多次数字
^[0-9]+$
//0或多次数字
^[0-9]*$
//0-1次数字
^[0-9]?$
//[0-9]
\d
//[^0-9]
\D
//空白字符
\s

对于前端来说,正则表达式如果出现了\这个符号,直接用就行

但对于后端来说,需要用\\转义\

相关标签: 实训 实训