Java(第五周)

2019-04-01  本文已影响0人  mwj610

一、构造方法

构造方法格式:
权限 构造方法名(参数列表)
{

}
方法的名字必须和类的名字完全一致。
构造方法不允许写返回值类型,void也不能写


构造方法和一般方法的区别


this关键字:
构造方法调用格式:
this(参数列表);


super关键字
super( )调用的是父类的空参数构造
super(参数)调用的是父类有参数的构造方法
子类的构造方法,有一个默认添加的构造方法
子类构造方法的第一行,有一个代码super( )
public Student( ){
super( );
}
子类中所有的构造方法,无论重载多少个,第一行必须是super()
如果子类有多个构造方法,子类任意调用一个就好


无论如何,子类的所有构造方法,直接、间接必须调用到父类构造方法。子类的构造方法什么都不写,默认的构造方法第一行super();

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

二、字符串

字符串是常量
字符串的本质是一个字符的数组


String(byte[ ] bytes)传递字节数组;字节数组转换为字符串;查询编码表
String(byte[ ] bytes,int offest,int length):字节数组的一部分转换为字符串;查询编码表
offest:数组的起始索引 length:个数

package cn.itcast.demo02;
public class StringDemo3 {
    public static void main(String[] args) {
        function();
    }
    public static void function() {
        byte[] bytes = {97,98,99,100};
        String s = new String(bytes);
        System.out.println(s);      //abcd
        byte[] bytes1 = {65,66,67,68,69};
        String s1 = new String(bytes1,1,4);
        System.out.println(s1);   //BCDE
    }
}

String(char[ ] value) :将字符数组转换为字符串;字符数组的参数,不查询编码表

    public static void function_1() {
        char[] ch = {'a','1','苗','d','f'};
        String s2 = new String(ch);
        System.out.println(s2);
        String s3 = new String(ch,1,3);
    }
}

String类的方法查找

1.获取长度:String.length

         String s = "asfafajhoc12snp面";
         int length = s.length();   

2.获取字符串的一部分:String substring(int beginIndex,int endIndex )
*包含头,不包含尾
String substring(int beginIndex): 包含头和后面的全部

         String s1 = "how are you";
         s1 = s1.substring(2,7);
         System.out.println(s1);    //w are

3.将字符串转为字符数组:getbytes

 String s2 = "abcd";
         byte[] bytes = s2.getBytes();
         for (int i = 0; i < bytes.length; i++) {
            System.out.println(bytes[i]); //97 98 99 100

4.将字符串转为字符数组:char[ ] toCharArray()

String s3 = "maio";
         char[] ch = s3.toCharArray();
         for (int i = 0; i < ch.length; i++) {
            System.out.println(ch[i]);//m a i o 
        }

5.计数器

public class StringTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        getCount(str);
    }
    public static void getCount(String str) {
        int upper = 0;
        int lower = 0;
        int digit = 0;
        for (int i = 0; i < str.length(); i++) {
             char c = str.charAt(i);
             if(c>=65 && c<=90) {
                 upper++;
             }
             else if(c>=97 && c<=122) {
                 lower++;
             }
             else if(c>=48 && c<=57){
                 digit++;
             }
        }
        System.out.println(upper);  //4
        System.out.println(lower);  //4
        System.out.println(digit);  //5
    }
}

字符串出现次数

    public static int getStringCount(String str,String key) {
        int count = 0;
        int index = 0;
        while(( index = str.indexOf(key)) !=-1 ) {
            count++;
            str = str.substring(index+key.length());
        }
        return count;
    }
}

StringBufferzi字符串的缓冲器对象
StringBuffer类方法insert
6.insert(int index,任意类型):将任意类型数据,插入到缓冲区的指定索引上。

   public static void function_2() {
        StringBuffer buffer = new StringBuffer();
        buffer.append("abcdef");
        buffer.insert(3, 6.23);
        System.out.println(buffer);  //abc6.23def
   }

7.repalce(int strat,int end,String str):将指定的索引范围内的所有字符,替换成新的字符串。

   public static void function_3() {
        StringBuffer buffer = new StringBuffer();
        buffer.append("abcdef");
        buffer.replace(1, 4, "Q");
        System.out.println(buffer); //aQef
   }

8.reverse( ):将缓冲区的字符反转。

   public static void function_4() {
        StringBuffer buffer = new StringBuffer();
        buffer.append("abcdef");
        buffer.reverse();
        System.out.println(buffer);  //fedcba
   }

9.String toString( ) 继承Obejct,重写toString( ):将缓冲区所有的字符变成字符串

   public static void function_5() {
        StringBuffer buffer = new StringBuffer();
        buffer.append("abcdef");
        buffer.append(12345);
        String s = buffer.toString();
        System.out.println(s);  //abcdef12345
   }

10.StringBuilder类:StringBuilder比StringBuffer快

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

三、正则表达式

1.正则表达式
正则表达式是一个字符串。使用单个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。在开发中,正则表达式通常被用来检索、替换那些符合某个规则的文本。

上一篇下一篇

猜你喜欢

热点阅读