java之String类
1.java程序中所有字符的字面值都作为string 类的实例实现。,字符串本质是一个字符的数组。
1 //演示字符串 具备final属性,一次赋值,终生不变 2 String str = "oracle";//此时str被定义为变量,“oracle”创建一个字符串对象 ,并匹配一个地址
3 str = "甲骨文"; //重新分配一个地址
链接:https://blog.csdn.net/weixin_38750084/article/details/82928911
2.equals说明使用双引号和new方式的区别
1 String s3 = "abc"; //创建1个字符串对象,分配1个地址; 2 String s4 = new String("abc");//如果常量池中已经有“abc”这个字符串对象,就不需要再创建,直接将地址分配给new的对象。 3 System.out.println(s3==s4);//false 4 System.out.println(s3.equals(s4));//true, 5 //因为String重写了equals方法,建立了字符串自己的判断相同的依据(通过字符串对象中的字符来判断)
3.构造方法:
3.1将字节数组转为字符串
1 byte[] bytes={66,67,68,69}; 2 //字节(0-127)转字符串 ASCII码表 3 String s11=new String(bytes);//组成新的数组 4 System.out.println(s11); 5 //字节(-128--1)转字符串,中文码表gbk,,一个汉字两个字节,必须成对出现 6 byte[] bytes1={-66,-67,-68,-69};
3.2截取规定长度的字节长度转为字符串
1 //字节(0-127)转字符串 ASCII码表 2 String s1=new String(bytes1,2,2);//从bytes1的数组的下表为2的截取长度为2
3.3将字符转为字符串
char[] c={'a','4','e','中'}; //字符数组转字符串,直接将字符数组作为实参传到创建的对象中 String s=new String(c); System.out.println("---"+s);
3.3截取规定长度的字符,转为字符串
1 char[] c={'a','4','e','中'}; 2 //字符数组转字符串,直接将字符数组作为实参传到创建的对象中 3 String s=new String(c,2,2); 4 System.out.println("---"+s);
4.String类的方法
4.1length():
1 //获取字符串长度 字符的个数,一个汉字,一个标点,一个字母,表示一个字符 2 System.out.println(s.length());//或直接写“java”.length()
4.2截取字符串
1 //截取字符串 2 System.out.println(s.substring(2));//从下标2开始,截取到最后 3 System.out.println(s.substring(2,4));//从下标2开始,到下标4,包头不包尾
4.3判断是否以指定字符串开始、结尾或者包含
1 //判断是否以该字符串开头 2 System.out.println(s.startsWith("a"));//内容必须是字符串类型 3 //判断是否以该字符串结尾 4 System.out.println(s.endsWith("a")); 5 //判断是否包含该字符串 6 System.out.println(s.contains("5"));
4.4查找指定字符串出现的下标(第一次);
1 //查找字符串的第一次de下标值,若此中不包含,则返回-1 2 System.out.println(s.indexOf("中"));
4.5将字符串转为字节最终得到一个字节数组
1 //字符串转字节,通过byte类型的变量去接,以便打印 2 byte[] bytes2=s.getBytes(); 3 for(int i=0;i<bytes2.length;i++){ 4 System.out.print(bytes2[i]+",");//显示字节(-128-127的范围) 5 }
4.6将字符串转为字符
1 char[] c1=s.toCharArray(); 2 for(int i=0;i<c1.length;i++){ 3 System.out.print(c1[i]+" ");//显示字符 4 }
4.7判断是否与指定的字符串相同
1 //判断两个字符串是否相同 2 String s2="123A"; 3 System.out.println(s2.equals("123a"));//区分大小写 4 System.out.println(s2.equalsIgnoreCase("123a"));//不区分大小写
4.8 获取字符串内容 ArrayList<>,String,System.out.println(),stringbuffer,stringbuilder,都已对tostring()方法重写,所以以下两种方式均可
1 //获取字符串内容 2 String str = new String("hello"); 3 System.out.println(str.toString()); 4 System.out.println(str);//系统默认对tostring重写