目录
一、字符数组与字符串的相互转换
1、将字符数组中的所有内容转换为字符串
public static void main(String[] args) {
char[] val={'a','b','c'};
String val1=new String(val);//字符型数组转换成字符串
System.out.println(val1);
}
2、将部分字符数组中的内容转换为字符串
public static void main(String[] args) {
char[] val={'a','b','c','d','e'};
String str=new String(val,1,4);//数组的部分转换为字符串
System.out.println(str);
}
3、取得指定索引位置的字符,索引从0 开始
public static void main(String[] args) {
String str="hello";
char ch=str.charAt(1);//获取字符串中1下标的元素
System.out.println(ch);
}
4、将字符串准换为字符数组
public static void main(String[] args) {
String str="hello";
char[] chars=str.toCharArray();//把字符串转换字符串数组
System.out.println(Arrays.toString(chars));
}
5、练习题:判断给定的字符串是不是由纯数字组成
public static boolean isNumberChar(String s){//判断字符串是不是由纯数组组成的
for (int i = 0; i <s.length() ; i++) {
char ch=s.charAt(i);
if (ch<'0'||ch>'9') {
return false;
}
}
return true;
}
public static void main(String[] args) {
String str="1234567890";
System.out.println(isNumberChar(str));
}
二、字节数组与字符串的相互转换
1、将字节数组转换为字符串
public static void main(String[] args) {
byte[] bytes={97,98,99,100};//将字节对应的整数转换成相应的字符
String str=new String(bytes);
System.out.println(str);
}
2、将部分字节数组中的内容转换为字符串
public static void main(String[] args) {
byte[] bytes={97,98,99,100};//将字节对应的部分整数转换成相应的字符
String str=new String(bytes,1,3);
System.out.println(str);
}
3、将字符串转换为字节数组
public static void main(String[] args) {
String str="abcd";
byte[] bytes=str.getBytes();//将字符串转换成字节数组
System.out.println(Arrays.toString(bytes));
}
4、编码转换处理
public static void main(String[] args) {
String str="小陆";
byte[] bytes=str.getBytes(StandardCharsets.UTF_8);//字符串为中文时编码器不同转换的字节数组不同
System.out.println(Arrays.toString(bytes));
}
【注释】:byte[]是把String按照一个字节一个字节的方式处理,这种适合在网络传输数据储存这样的场景下使用,更适合针对二进制数据来操作。
【注释】:char[]是把String按照一个字符一个字符的方式来处理,更适合针对文本数据来操作,尤其是包含中文的时候。
三、字符串的比较
1、比较两个字符串的大小
public static void main(String[] args) {
String str1="abc";
String str2="Abc";
int ret= str1.compareTo(str2);//字符串的比较
System.out.println(ret);
}
2、比较两个字符串的内容是否相等(忽略大小写)
public static void main(String[] args) {
String str1="abc";
String str2="Abc";
int ret= str1.compareTo(str2);//字符串的比较
System.out.println(str1.equalsIgnoreCase(str2));
}
四、 针对字符串本身的一些基础函数
1、判断一个子字符串是否存在
public static void main(String[] args) {
String str="asdgabcfghj";
String tmp="abc";
boolean flg=str.contains(tmp);//判断str中包不包含tmp
System.out.println(flg);
}
2、从头开始查找指定字符串的位置,查到了返回位置位置得开始索引,如果查不到返回-1
public static void main14(String[] args) {
String str="asabcdgfabcghj";
String tmp="abc";
int a=str.indexOf(tmp);//若str中包含tmp则返回字符a的下标,若没有则返回-1
System.out.println(a);
}
3、从指定位置开始查找子字符串得位置
public static void main(String[] args) {
String str="asabcdgfabcghj";
String tmp="abc";
int a=str.indexOf(tmp,4);//从指定下标的字符及其之后开始查找是否包含tmp若包含返回字符a的下标,若没有则返回-1
System.out.println(a);
}
4、由后向前查找子字符串的位置
public static void main(String[] args) {
String str="asabcdgfabcghj";
String tmp="abc";
int a=str.lastIndexOf(tmp);//从后往前找返回a的下标
System.out.println(a);
}
5、从指定位置由后向前查找
public static void main(String[] args) {
String str="asabcdgfabcghj";
String tmp="abc";
int a=str.lastIndexOf(tmp,9);//从指定位置开始从后往前查找返回a的下标
System.out.println(a);
}
6、判断是否以指定字符串开头
public static void main(String[] args) {
String str="asabcdgfabcghj";
boolean flg=str.startsWith("asa");//判断字符串str是不是以asa字符开头的
System.out.println(flg);
}
7、从指定位置开始判断是否以指定字符串开头
public static void main(String[] args) {
String str="asabcdgfabcghj";
boolean flg=str.startsWith("a",2);//判断从2下标开始后的字符是否以a开头
System.out.println(flg);
}
8、 判断是否以指定字符串结尾
public static void main(String[] args) {
String str="asabcdgfabcghj";
boolean flg=str.endsWith("ghj");//字符串是否以ghj结尾的
System.out.println(flg);
}
五、字符串的替换、
1、指定字符替换,替换所有指定字符
public static void main(String[] args) {
String str="asabcdgfabcghj";
String ret=str.replace('a','o');//指定字符替换,替换所有指定字符
System.out.println(ret);
}
2、替换所有指定字符串
public static void main(String[] args) {
String str="asabcdgfabcghj";
String ret=str.replace("abc","ppp");//替换所有指定字符串
System.out.println(ret);
}
3、替换第一次出现的指定字符串
public static void main(String[] args) {
String str="asabcdgfabcghj";
String ret=str.replaceFirst("abc","ppp");//替换第一次出现的指定字符串
System.out.println(ret);
}
六、字符串的分割
1、字符串的分割
public static void main(String[] args) {
String str="name=xiaolu&age=21&id=123456";
String[] str1=str.split("&");
for (String s:str1) {//字符串的分割
System.out.println(s);
}
}
2、字符串的多次分割
public static void main(String[] args) {
String str="name=xiaolu&age=21&id=123456";
String[] str1=str.split("&");
for (String s:str1) {
String[] str2=s.split("=");//字符串的多次分割
for (String ss:str2) {
System.out.println(ss);
}
}
}
3、字符".","|","*","+"分割时必须加转义符“//”(举一个点的例子)
public static void main(String[] args) {
String str="192.168.1.1";
String[] str1=str.split("\\.");//按点分割IP地址是必须用转义字符修饰点
for (String s:str1) {
System.out.println(s);
}
4、指定分割几组
public static void main(String[] args) {
String str="192.168.1.1";
String[] str1=str.split("\\.",2);//可以指定分几组
for (String s:str1) {
System.out.println(s);
}
}
5、同时按多个字符分割
public static void main(String[] args) {
String str="11 &22#33";
String[] str1=str.split(" |&|#");//同时按多个字符分割
for (String s:str1) {
System.out.println(s);
}
}
七、字符串的截取
1、截取指定位置及其之后的字符串
public static void main(String[] args) {
String str="123456";
String sub=str.substring(2);//截取2下标之后的字符
System.out.println(sub);
}
2、截取指定区间的字符串
public static void main(String[] args) {
String str="123456";
String sub=str.substring(2,5);//截取2下标到5下标之间的字符,注意JAVA 当中一般为左闭右开的
System.out.println(sub);
}
【注意】:JAVA 当中的区间一般为左闭右开的
感谢观看哦!!!!