一、String重要方法(续)
1、String方法
- getBytes()
特点:可以根据指定的码表来返回一个字节数组或者不指定码表就按默认系统平台码来进行编码返回一个字节数组
- 构造方法: new String (byte[] bs,int offeset,int length)
特点:把部分字节数组可以按照指定的码表进行转换成新的新的字符串对象如果不指定就按默认系统平台码进行转换
public static void main(String[] args) throws UnsupportedEncodingException {
//字符串
String str="字符串";
//没有指定具体的码表就按默认的系统平台码来编码(GBK)
byte[] bs=str.getBytes("utf-8");
System.out.println(bs.length);
//字节数组转成一个新的字符串对象,不指定转换编码就是默认系统平台码
String s=new String(bs,"utf-8");
//转换字节数组的部分信息为新的字符串对象
String s=new String(bs,0,7,"utf-8");
System.out.println(s);
}
- hashcode()
特点:返回的是字符串对象的哈希码值,重写这个hashcode方法根据字符串元素内容以及顺序来算的
/*//字符串
String str1="bac";
String str2=new String("abc");
//重写hashcode根据字符串的元素顺序来算的哈希码值
System.out.println(str1.hashCode());
System.out.println(str2.hashCode());*/
- indexOf()
特点:返回指定新串在原串第一次出现的下标值,如果没有出现就返回-1
String str="wegwf43evwf43w";
//返回新串在原串中第一次出现下标值(新串第一个字符出现的下标)
//如果不是原串的子串就会返回一个-1
System.out.println(str.indexOf("f43"));
//包含起始下标往后查找第一次出现
System.out.println(str.indexOf("f43",4));
- intern()
特点:把字符串对象的引用转向到常量池
String str1="abc";
String str2=new String("abc");
//把指向堆内存的引用转向到常量池中
str2=str2.intern();
//str1=str1.intern();
System.out.println(str1==str2);
- isEmpty()
特点:判断字符串是否是空串
String str="";//内存有空间但是没有元素--空
//String str=null;//内存空间没有开辟
//空串
String str=new String();
//判断字符串对象是否是空串
System.out.println(str.isEmpty());
- replace()
特点:把原串中出现的所有指定字符换成新字符返回这样的新字符串
//字符串
String str="qewrhgfwqdfq";
//把原串中所有的指定字符替换成新字符返回一个新字符串
System.out.println(str.replace("q", "+"));
System.out.println(str);
- subString()
特点:按照给定的下标范围进行截取子串,把这个子串进行返回
String str="Wsdhcedus";
//给定起始下标,从下标开始往后截取成一个新字符串进行返回
System.out.println(str.substring(7));
//从起始下标开始截取,截取结束下标减去起始下标的个数
//左包(包含)右不包
System.out.println(str.substring(2, 7));
//全部变大写
System.out.println(str.toUpperCase());
//全部变小写
System.out.println(str.toLowerCase());
- trim()
特点:对前面以及尾部的空格进行删除但是不针对中间出现
//字符串
String str=" eruhgu\terdv ";
//
System.out.println(str+"a");
//对字符串的前面或者尾部出现的空格进行删除---掐头去尾
System.out.println(str.trim()+"a");
- valueOf()
特点:静态方法 可以把所有的数据类型的数据转成新字符串返回
//把布尔类型数据转成新的字符串
String s1=String.valueOf(true);
//把整型值转成新的字符串
String s2=String.valueOf(1);
//
int[] arr={2,3,4};
char[] cs={'2','6','8'};
//输出的是数组内存地址值 通过底层的ValueOf方法转成字符串
System.out.println(arr);
//在底层没有转成字符串直接输出的就是数组元素
System.out.println(cs.toString());
二、正则表达式
特点:
提供大量的用于匹配字符串的规则以及语法
//字符串
String str="\t";
//. 任意字符
System.out.println(str.matches("."));
//匹配.
//\\.-字符串转义-\.-正则转义-.
//.---小数 文件类型
System.out.println(str.matches("\\."));
//匹配\
//\\ \\-字符串转义-\\-正则转义--\
System.out.println(str.matches("\\\\"));
System.out.println(str.matches("\t"));