• java笔记 chapter6 Object类,String类,正则表达式


    Object类(在java.lang包中)
    String类
    正则表达式
     
    Object类
    1,Object类是所有java类的父类。
    2,equals方法
    2.1,equals方法 和"=="运算符的关系
    2.2,覆盖equals方法
    3,hashCode方法
    4,toString方法
     
    String类:字符串的底层实现是一个char字符数组。
    1,String类存在java.lang包里,继承了Object类,实现了以下接口,API显示如下
    public final class String
    extends Object
    implements Serializable, Comparable<String>, CharSequence
    2,String的直接量
         1),String的直接量是指双引号括起来的字符序列。
         2),String name = "lucy';  这里的name是String类型的引用, lucy是String的直接量。
         3),String的直接量是放在方法区的常量池里。
     
    ,3,
    2.1,String的常用方法:length(),charAt() ,getBytes()和 getChars()
    方法 length()   –返回 String 的长度,是按照char 返回的长度。备注:数组含有 length属性。
    一个中文,占2个字节,但是按照char计算,中文还是1个。
    方法getBytes()   –使用平台的默认字符集将此String编码为byte序列,并将结果存储到一个新的byte数组中 
                       String s3 = "欢迎java";
                        byte[] bs = s3.getBytes();
                        forbyte b : bs) {
                                 System. out.println(b);
                       }
                       System. out.println( "字节数组的长度是===" + bs.length ); 
     
     方法charAt(int index)    –获得字符串指定位置的字符 
                       String s1 = "hello java" ;
                       String s2 = "hello你好" ;
                       System. out.println(s1.length()); //返回10,空格等符号也算作一个字符
                       System. out.println(s2.length());  //返回7
                       System. out.println(s1.charAt(4)); //返回字母o
     
    方法getChars (int srcBegin, int srcEnd,   char[ ] dst, int dstBegin)   –拷贝字符串的部分字符序列到指定的字符数组的指定位置
                       String s4 = "welcomejavaasd";
                        char[] cs = {'a' ,'o' ,'p' ,'k' ,'s' ,'w' };
                       s4.getChars(2, 5 ,cs, 2);      //lco
                        forchar c : cs) {
                                 System. out.println(c);
                       }
    方法toCharArray()                  
    public char[] toCharArray()  将此字符串转换为一个新的字符数组
                       String s1 = "are you ok" ;
                        char [] cs = s1.toCharArray();
                        forchar a : cs) {
                                 System. out.println(a);
                       }
     
     
    2.2, 字符串比较----
    str1.compareTo(str2); 按照字典顺序比较, 返回0表示相等,返回大于0的数,表示字符串str1大。小于0表示str2大.
    str1.compareToIgnoreCase(str2) 忽略大小写,返回0表示相等,大于0表示str1大,小于0表示str2大
    方法equals(Object s) :比较两个String 对象的值是否相等,这个是区分大小写的 ,
    方法equalsIgnoreCase(String    s) :比较两个String 对象的值是否相等,忽略大小写 。
    public boolean equals(Object anObject)
    public boolean equalsIgnoreCase(String anotherString)
     
    例子:
                       String s1 = "java123";
                       String s2 = "JAVA123";
                       String s3 = "abc";
                       
                        int a = s1.compareTo(s2);  //32
                        int b = s2.compareTo(s3);    //-23
                        int c = s1.compareToIgnoreCase(s2); //0
                        int d = s2.compareToIgnoreCase(s3);  //9
     
                        boolean b1 = s1.equals(s2);  //false
                        boolean b2 = s1.equalsIgnoreCase(s2);  //true
                        boolean b3 = s1.equalsIgnoreCase(s3);  //false
     
    2.3,查找字符串中的字符或子串 indexOf()   lastIndexOf()
                       String s1 = "java23中文hi234";
                        int a = s1.indexOf( "23");   //返回4
                        int a1 = s1.indexOf( "中国");   //返回-1
                        int b = s1.indexOf( "23", 5);  // 从索引为5的位置开始搜素,返回10
     
                       String s2 = "北京onedream";
                        int m = s2.lastIndexOf( "e");  //7
                        int n = s2.lastIndexOf( "r");  //6
                        int p = s2.lastIndexOf( "p");  //-1,不存在字符P,找不到就返回-1
                        int i = s2.lastIndexOf( "o", 2);   //2
                        int j = s2.lastIndexOf( "o", 1);  //-1
     
    2.4,截取字符串substring()
                       String s = "tomorrow"//length是8
                       
                       String s1 = s.substring(2); //morrow                   
                       String s2 = s.substring(6); //ow
                       String s3 = s.substring(8); //返回空串""
    //                 String s4 = s.substring(9); //报错 java.lang.StringIndexOutOfBoundsException:
                       String s5 = s.substring(2,5); // mor
     
    2.5,字符串拼接concat
                       String s = "some";
                       String s1 = s.concat( "one");  // someone
     
    2.6,valueOf
    2.7,字符串分解split
                       String s1 = "and i wonder * i wonder how * i wonder why" ;
                       String[] str = s1.split( "\*");
                        for(String a : str) {
                                 System. out.println(a);
                       }
     
     
    2.8,其他的String方法:replace(char1,char2)  toUpperCase()  trim() toCharArray()
                        String s = "welcome to java, hello, java中国" ;
                       String s1 = s.replace( "java""123" );
                       String s2 = s.replaceAll( "e""呵呵" );
                       String s3 = s.replaceFirst( "l""*" ); //第一个字母l用型号代替,
                       String s4 = s.replaceFirst( "k""哈哈" );
                       
                       System. out.println(s1);  //welcome to 123, hello, 123中国
                       System. out.println(s2); //w呵呵lcom呵呵 to java, h呵呵llo , java中国
                       System. out.println(s3); //we*come to java, hello, java中国
                       System. out.println(s4); //welcome to java, hello, java中国       
     
                       String s = "java开发2013";
                       String s1 = s.toUpperCase();  // JAVA开发2013
     
                       String s = "  welcome to java  中国   " ;
                       String s1 = s.trim();   //  public String trim()  返回字符串的副本,忽略前导空白和尾部空白,但是文本中间的空白不会被忽略
                       System. out.println(s1);        //welcome to java  中国         
     
     
    扩展:
    如何判断字符串是否包含中文?包含几个中文。
         public class HasCh {
               public static void main(String[] args) {
                       String str = "welcome to New York 小平" ;
                        int charLength = str.length();
                        int byteLenght = str.getBytes(). length;
                       
                        if(byteLenght > charLength) {
                                  int chineseNum = byteLenght - charLength;
                                 System. out.println( "str中的中文个数是" + chineseNum );
                       } else {
                                 System. out.println( "str中不包含中文" );
                       }                  
              }
         }
     
    判断字符串s1师傅包含字符串s2
               if(s1.indexOf(s2) > 0) {
                 //  说明包含        
              }
     
     
    正则表达式 (待补)
  • 相关阅读:
    函数 out 传值 分割
    函数
    特殊集合
    集合
    数组

    穷举
    循环
    mac 软件安装
    实用信息查询接口
  • 原文地址:https://www.cnblogs.com/wxc-xiaohuang/p/3483006.html
Copyright © 2020-2023  润新知