1. String 的构造方法和常用的构造方法的解释
2.常用的构造方法和解释代码
2.1
- String(byte[] byte)
----把对应的byte数组变成字符串
public class StringTest {
public static void main(String[] args){
byte[] by={96,97,98};
String str=new String(by);
System.out.println(str);
}
}
----输出结果是: abc ,三个字母分别代表数字的ASCII码
- String(byte[] byte ,index,length)
public class StringTest {
public static void main(String[] args){
byte[] by={96,97,98};
String str=new String(by,1,2);
System.out.println(str);
}
}
----输出结果是:bc index代表byte数组下标,length代表长度
3.char数组也有同理的对应的String 的构造方法
public class StringTest {
public static void main(String[] args) {
char[] ch = {'我', '是', '中', '国', '人'};
String str = new String(ch);//
System.out.println(str);//结果:我是中国人
String str1 = new String(ch, 0, 2);
System.out.println(str1);//结果:我是
}
}
4.我们常用的初始化方式
String s1="sss";
String s2=new String("sss");
.
.
.
.
.
.
.
.
二,我们常用额String 方法
1.charAt(index);
char s3=str.charAt(2);// s3='中';
System.out.println(s3);
中
Process finished with exit code 0
2.compareTo(字符串,或则字符串变量);
System.out.println("abce".compareTo("abcd"));//结果是1,按照字符串的顺序依次比较对应字母的ASCII码,0代表全部想等,1代表前者大于后者(出现第一次大于就大于,后面的字母不再比较)
// -1代表小于,同理1
3.contains();方法,判断前面的字符串时候包含后面的字符串
System.out.println("abdc".contains("ab"));
---结果是: true
4.endwiths();判断字符串时候以某个字符串结尾
System.out.println("abdc".endsWith("bdc"));
---结果是:true
System.out.println("asdfA".equalsIgnoreCase("sadf"));
//比较字符串,忽略大小写
byte [] bytes="abcd".getBytes();
//把字符串的元素变成字符串数组,放在byte里面
System.out.println("afsd".isEmpty());
//判断字符串是否为空字符串,但是不能null而是判断字符串的长度是不是空
System.out.println("asdfas".length());
//判断字符串的长度方法。
相区别数组长度的length。数组的是一个属性,这里用的是一个方法
System.out.println("asfadfafadf".indexOf("as"));
//判断字符串在字符串出现的第一个位置
//如果不存在就返回-1
System.out.println("adfasdf".lastIndexOf("asdf"));
//返回最后一次出现的地方
System.out.println("asdf".replace('s','a'));
//把前者字符串的某一个字符,换成另一个字符
System.out.println("asdfg".replaceAll("asdf","99999"));
//置换前者字符串的一个子子字符串,换成后者
System.out.println("safaaf".replaceFirst("ad","sdf"));
//置换第一个
### ---之前的置换,没有的话就置换失败,返回原来的字符串
String []str1="1a1a1a1a1a1a1a".split("a");
//根据a来拆分字符串,
String []str1="1a1a1a1a1a1a1a".split("a",6);
//两个拆分字符串,都可以使用正则表达式,但是呢,后面加了数字限制
//就是限制字符串的长度,6代表字符串最大长度是6,最后一个字符元素是拆分剩下的那一部分,如果没有找到拆分的标识,这个字符串数组就只有一个元素,就是这个字符串,后面的数字长度限制并不起作用
System.out.println("sfasdfsadf".startsWith("df",5));
//判断字符串是否以下标为5的字字符串为开始,下标可以不写,默认0
endsWith();方法没有可以以子字符判断的的方式
System.out.println("sfasdf".substring(2,5));
//返回一个字符串,起始下标是2结束下标是4.
5是不被包含的,是左闭右开的,结束下标可以不写,默认字符串结束
char[] chars="safdasdf".toCharArray();
//字符串转换为一个char数组
//如果想拆分,可以先subtring,如下
char[] chars="safdasdf".substring(2,5).toCharArray();
//另外,像这类的返回一个字符串数组之类的东西可以这样写
for (int i = 0; i < "fasdfasd".toCharArray().length; i++) {
System.out.println("fasdfasd".toCharArray()[i]);
}
我们可以看出,其实返回的char[]数组的名字就是fasdfasd".toCharArray()
后面可以直接跟一个[i]来输出数组
System.out.println("ASDF".toUpperCase());
//把所有的字母转换为大写,括号内可以加规则
System.out.println("adfadf".toLowerCase());
//这个是小写,同理
System.out.println("dsafasdf adsfasdf ".trim());
//去除字符串前后的空白
String s1=String.valueOf(new StringTest());
System.out.println(s1);
//valueOf方法是一个静态的方法,把括号内的所有的形式的东西都转换为字符串存储在一个字符串里面,如果是一个对象的话,不重写toString方法就返回的是一个内存的地址,如果重写的话就返回这个对象的toString