java学习日志day13

2019年7月15日

API

编码:把文字转成具体的数字,码表:就是转换规则

当代码存储在.java文件中时,默认使用UTF-8进行编码

编译生成.class,加载到内存时,期默认使用UTF-16进行编码

当内存执行完成之后,要把内存的字节转成字符输出到程序中,

如果没有指定编码就按默认的系统平台码来进行编码;

windows中文版:默认GBK进行编码

Linux 默认UTF-8进行编码;

String 重要方法

关于getBytes();
将String编码

指定byte编码的方法:

将一个字符串转换成一个字节数组

byte[]bt=a.getBytes(“utf-8”);

将字符数组转换成字符串,若不指定转换编码,则转换时为默认

系统平台码;不指定可能会出现乱码;

String s = new String(bt,“utf-8”);

可以转换字节数组的部分信息,为一个新的字符串对象;

方法

String s = new String(bt,0,3,“utf-8”);

把部分字节数组可以按照指定的码表进行转换成新的字符串对象,

如果不指定,就按照默认的系统平台码进行转换;

new String(byte[],int offeset,int length)

hashCode();返回一个字符串的哈希码值

indexOf(String a—子串);

返回一个子串在主串中的下标值,如果不是原串的子串,就会返回

一个-1;

若有多个相同内容,若想向后查找则可以定义起始位置

indexOf(“xxx”,n----从第n个下标开始查找);

intern();

String a = “123”;

String b = new String(“123”);

b=b.intern();

此时a与b地址值一致

把指向堆内存的引用转为指向常量池

isEmpty();

判断字符串是否是一个空字符串

replace(old char , new char )

把原字符串中的所有的指定字符,替换成新的字符串返回一个新

字符串,不会覆盖原字符串

substring(开始下标);

给定起始下标,从下标开始往后截取成一个新字符串,进行返回

substring(开始下标,结束下标);

给定起始下标与结束下标,从开始下标至结束下标之前截取成一

个新字符串进行返回;

toUpperCase();/toLowerCase:

将字符串所有内容变成大写/将所有字符串内容变成小写

trim();删除字符串前面和尾部的空格

valueOf();把整型值,转换成一个新的字符串

正则表达式(Pattern类)

以下为部分数量词----控制字符出现的次数;

提供大量用于匹配字符串的规则以及语法

String s = “abc”;

用compile指定匹配规则

Pattern p = Pattern.compile(“abc”);

匹配只有abc的字符串;

关联待匹配的字符串;

输入要匹配的字符串
Matcher m =p.mathcer(s);

方法
.matches(添加匹配规则);

正则表达式另一种方法

从多个字符串中匹配

asd/qwe/zxc/

.matches("[asd][qwe][zxc]");[]中内容任取一个符合的

若匹配0-9的数字,正则表达式可以提供范围

.matches([0-9][a-z]);

匹配除任取数字或者字母之外的方法

.marches([^asd]);除asd之外的

.marches(".");匹配任意字符

正则转义匹配字符串中的 “.”

任意字符同理

x.matches("\.")

+控制的是前面的字符

matches("[0-9].+[a-z]");最少出现一次

matches("[0-9].?[a-z]");最多出现一次

matches("[abc].*\d");中间可以不出现,也可以出现多个

matches没有最大区间。只有最小区间,因为最大区间会取到负数

所以不允许

matches(a{5});匹配aaaaa字符串

matches(a{5,});至少出现五次

matches(a{m,n});至少出现m-n次

判断字符串中是否出现了 ab

.matches(".ab.")

匹配字符串是否出现了两个ab

.matches(".*ab.ab.")

第二种写法,括号内的小括号()----捕获组

后边的\n为捕获组的编号;

.matches(".(ab).\1.*")

捕获组的编号问题-----从第一个左边括号开始编号

例如(a(b(c)d)e)

1–abcde
2–bcd
3–c

使用捕获组匹配叠字

matches("(.)\1+")

aabb形式

matches("(.)\1(.)\2");

abab形式

matches("(…)\1");

你可能感兴趣的:(学习日志)