• java工具类;String类


    *字符串相关

    1.String类

    2.所属的包是java.lang包 不用导入

    3.找寻构造方法创建对象

      String s1="abc";//直接将字符串常量赋值给s1;

      String ss=new String();//无参数构造方法创建空的对象;

      String s2=new String("abc");//带String参数的构造方法创建对象

    ·  String s2=new String(byte[] value);//将数组中的每一个元素转化成对应的char组合成String

      String s2=new String(char[] value);//将数组中的每一个char元素拼接成最终的String

      String是一个非常特殊的引用数据类型 可以像基本数据类型一样 创建 赋值

    4.String类的特性

      String的不可变特性;

        体现在两个地方:长度及内容

        长度-->final修饰的数组 数组长度本身不变 final修饰数组的地址也不变;

        内容-->private修饰的属性 不能在类的外部访问

        在String类中包含一个数组;

        private final char[] value;//存储String中的每一个字符

        final最终的不可改变的-->地址不让改变;数组的长度本身不可变;

        private 私有的 当前类中才可访问-->数组中的内容也不能改变;

    *5.String类中常用的方法 20+

      1.boolean=equals(Object obj);//继承Object类 重写啦 比较两个字符串中的字面值是否相等

      2.int = hashCode();//继承自Object重写啦  31*h+和;

      3.int = compareTo(String str);//实现自Compare接口 实现啦 按照字典(unicode编码)索引的顺序比较;

      4.String = toString();//继承自Object 重写啦 不再输出@hashCode (16进制的形式);输出字符串中的字面值;

    ------------------------------------------------------------------------------------------------------------------------

      5.char = charAt(int index);//"abc" 0--a

        //返回给定index对应位置的那个char值(字符

      6.int = codePointAt(int index);//"abc" 0-97

        //返回给定index对应位置的那个char所对应的code码

      7.int=length();//返回字符串的长度(个数);(其实就是底层char[] value属性的长度)

        注意:区别数组length是属性 String的length()是方法  集合size()方法;

      8.String = concat(String);//将给定的字符串拼接在当前字符串之后;

        注意:方法执行完毕需要接受返回值 String的不可变特性;

           concat方法 与 ‘+’拼接的性能问题;concat方法快些;

           若是遇到频繁的拼接字符串-->通常使用StringBuilder、StringBuffer

      9.boolean=contains(CharSequence s);//判断给定的s是否在字符串中存在

      10.startsWith(String prefix);//判断此字符串是否以prefix开头;

        endsWith(string suffix);结尾

      11.byte[]=getBytes();

        char[]=toCharArray();

        将当前的字符串转化成数组

      12.int index=indexOf(int/String str [,int fromIndex]);

      //四个方法重载,找寻给定的元素在字符串中第一次出现的索引位置;若字符串不存在,则返回-1

       lastIndexOf();//找寻给定的元素在字符串中最后一次出现的索引位置 若不存在则返回-1;

      13.boolean=isEmpty();

       判断当前字符串是否为空字符串(length()是否为0);

       注意:与null的区别;

      14.replace();

        replaceAll();

       replaceFirst();

        将给定的字符串替换成另外的字符串;

      15.split(String regex [,int limit]);

        按照给定的表达式将原来的字符串拆分开的

      16.String=substring(int beginIndex [,int endIndex]);

        将当前的字符串截取一部分;

        从beginIndex开始至endIndex结束

        若endIndex不写 则默认到字符串最后

      17.toUpperCase();

        toLowerCase();

        将全部字符串转换成大写/小写

        

       18.trim();

        去掉字符串前后多余的空格;

        

    ===============================================================

    Regular有规律的 Expression表达式

    正则表达式regex

      一个带有一定规律的表达式

      匹配字符串格式的

    正则表达式通常的作用如下:

    1.字符串的格式校验 String类中提供的一个方法 matches("regex")

    2.字符串的拆分及替换 String类中提供的方法replace split

    3.字符串的查找 Pattern模式  Mather匹配器

     

      | 或者

    如下的所有都用来描述字符出现的次数;

     ? 0-1次 

    * 0-n次

    + 1-n次

     

     -------------------------------------------------------------------------------------

    public class Test0517{
    	public static void main(String[] args){
    		String str="我-爱-你-中国我爱你中国";
    		//str=str.substring(3);//-你-中国我爱你中国
    		str=str.substring(2,5);//[2,5) 爱-你		
    		System.out.println(str);
            }
    }
    

      

        

      

    public class Test0517{
    	public static void main(String[] args){
    		String str="我爱你中国我爱你中国";
    		//str=str.replace("中国","china");//我爱你china我爱你china
    		//str=str.replaceAll("中国","china");//我爱你china我爱你china
    		str=str.replaceFirst("中国","*");//我爱你*我爱你中国
    		System.out.println(str);
            }
    }
    

      

    public class Test0517{
    	public static void main(String[] args){
    		String st="";
    		boolean v=st.isEmpty();
    		System.out.println(v);//true
            }
    }
    

      

    public class Test0517{
    	public static void main(String[] args){
    		String a="abcda";
    		//int b=a.indexOf("a");//0
    		//int b=a.indexOf("k");//-1
    		//int b=a.indexOf("a",3);//从3号索引开始找 //4
    		//int b=a.indexOf("cd");//2
    		//int b=a.indexOf(98);//98号code码对应的字符//1
    		//int b=a.lastIndexOf("a");//4
    		int b=a.lastIndexOf("bd");//-1
    		System.out.println(b);
            }
    }
    

      

    public class TestString{
    	public static void main(String[] args){
    		byte[] a=new byte[]{65,97,48};
    		String b=new String(a);//unicode 码 
    		System.out.println(b);//Aa0
    		
    		char[] c={'h','e','l','l'};//必须是单引号,不可以是双引号
    		String str=new String(c,1,3);//第一个索引开始,取3个值
    		System.out.println(str);//ell 数字对应的字符;
    		System.out.println(str.equals(null));//false;
    		System.out.println(str.hashCode());//一串数字
    		String ab="abc";
    		String bc="bcd";
    		System.out.println(ab.compareTo(bc));
    		char x=ab.charAt(0);		
    		System.out.println(x);//a
    		for(int i=0;i<ab.length();i++){
    			char value=ab.charAt(i);
    			System.out.print(value+" ");//a	b	c
    			int v=ab.codePointAt(i);
    			System.out.print(v+";"); //unicode码 (char)v 字符
    		}
    		System.out.println("-----------------");
    		//ab=ab.concat("jkl");
    		ab=ab+"jkl";
    		System.out.println(ab);//abcjkl 
    		
    		
    		
    		/*
    		String s1="abc";
    		String s2="abc";
    		String s3=new String("abc");
    		String s4=new String("abc");
    		System.out.println(s1==s2);//true 
    		System.out.println(s1==s3);//false
    		System.out.println(s3==s4);//false
    		System.out.println(s1.equals(s2)); //true
    		//将继承自Object中的equals重写了,equals比较值;
    		System.out.println(s1.equals(s3));
    		System.out.println(s3.equals(s4));
    		*/
    	}
    }
    

      

     ==================================================

    public class TestString{
    	public static void main(String[] args){
    		String s1="abc";
    		String s2="abc";
    		String s3=new String("abc");
    		String s4=new String("abc");
    		System.out.println(s1==s2);//true 
    		System.out.println(s1==s3);//false
    		System.out.println(s3==s4);//false
    		System.out.println(s1.equals(s2)); //true
    		//将继承自Object中的equals重写了,equals比较值;
    		System.out.println(s1.equals(s3));
    		System.out.println(s3.equals(s4));
    	}
    }
    

      

      

     

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    [BFS][链表][二分][STL]JZOJ 5875 听我说,海蜗牛
    [SPFA]JZOJ 5869 绿洲
    [Splay]Luogu 3960 NOIP2017 列队
    [扩欧]JZOJ 5855 吃蛋糕
    [模拟退火][堆优化Prim]2017TG Day2 T2 宝藏
    [并查集]奶酪
    [容斥]JZOJ 5843 b
    JS Undefined 类型
    Python logging 模块
    14.浏览器屏幕缩放bug修复
  • 原文地址:https://www.cnblogs.com/canglongdao/p/12901681.html
Copyright © 2020-2023  润新知