欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

菜鸡学习day08

程序员文章站 2022-07-15 16:11:23
...

菜鸡学习day08

package day08;
/*
String类
字符串是常量,不可变,可共享使用
相当于char【】字符数组,但底层原理是byte【】字节数组

创建字符串
三种构造方法
    public String();创建空白字符串
    public String(char【】 array);根据char【】内容创建
    public String(byte【】 array);根据。。。。。。
一种直接创建      String 名称 = “abc”;

字符串常量池(在堆中)
“”内直接创建的字符串在池中,new创建的字符串对象不在池中
对于基本类型,==进行数据比较
对于引用类型,==进行地址比较

字符串内容比较格式
1.      a.equals(b)
public boolean equals(Object obj);
比较时若有常量字符串abc,则建议写在前面
2.      a.equalsIgnoreCase(b);忽略大小写

与获取相关的常用方法
public int length();获取字符串长度
public String concat(String str);拼接
public char charAt(int index);获取指定位置的单个字符
public int index0f(String str);查找首次出现某字符串的位置,若无返回-1

字符串截取方法
public String substring(int index);截取从参数位置到末尾
public String substring(int begin,int end);截取一部分,不包含end

转换方法
public char【】 toCharArray();转换为字符数组
public byte[] getBytes();获得当前字符串的底层的字节数组??
public String peplace(CharSequence oldString,CharSequence newString);
                            将部分字符串进行替换
分割方法
public String【】 split(string regex);拆分成多个字符串
注:若按.进行分割,需写为\\.

static静态关键字
如果一个成员变量使用static关键字,则属于类,储存在静态区,多个对象共享同一数据
一旦使用static修饰成员方法,--->静态方法
                                    可以通过对象名/类名称(推荐,与成员方法区分)调用
                                    对于本类当中的静态方法,可以省略类名称
类名称.静态变量;
类名称.静态方法();

注:内存中现有静态内容,再有非静态内容(静态优先于非静态)
    因此静态不能访问非静态,不能用this

静态代码块
public class 类名称{
    static{

    }
}
当第一次用到本类时,静态代码块执行唯一一次
用来一次性对静态变量赋值

Arrays类     util
提供大量静态方法,实现数组操作
public static String toString(数组);将参数数组变成字符串
public static void sort(数组);升序排序,字符串为字母升序

Math数学工具类
public static double abs(double num);求绝对值
public static double ceil(bouble num);向上取整
public static double floor(double num);向下取整
public static long round(double num);四舍五入

Math.PI(圆周率)
 */


import javax.print.DocFlavor;
import java.util.Arrays;
import java.util.Scanner;

public class D0801 {
    public static void main(String[] args) {
        String str1 = new String();//创建空字符串
        System.out.println(str1);

        char[] array1 = {'a','b','c'};//abc
        String str2 = new String(array1);
        System.out.println(str2);

        byte[] array2 = {65,66,67};//ABC
        String str3 = new String(array2);
        System.out.println(str3);

        String str4 = "abc";//直接创建
        String str5 = "abc";
        String str6 = "ABC";
        System.out.println(str4.equals(str5));//内容比较
        System.out.println(str4.equals(str2));
        System.out.println(str5.equalsIgnoreCase(str6));//内容比较忽略大小写

        int length = str4.length();//长度
        System.out.println("str4长度是:" + length);

        String str7 = str4.concat(str5);//拼接
        System.out.println("拼接后为:" + str7);

        char str8 = str7.charAt(2);//获取指定位置字符
        System.out.println("str7的2位置处的字符为:" + str8);

        int num = str7.indexOf("bc");//查找字符所在位置
        System.out.println("bc首次出现的位置是:" + num);

        String str9 = str7.substring(2);//截取到结尾
        System.out.println("截取后为:" + str9);

        String str10 = str7.substring(2,5);//截取中间
        System.out.println("截取后为:" + str10);

        char[] str11 = str7.toCharArray();//转换为字符数组
        System.out.println(str11);

        byte[] str12 = str7.getBytes();
        System.out.println(str12);

        String str13 = str7.replace("bc","qw");//替换
        System.out.println(str13);

        String[] array3 = str7.split("a");//分割
        for (int i = 0; i < array3.length; i++) {
            System.out.println(array3[i]);
        }

        //-----------------------将数组【1,2,3】拼接成字符串[word1#word2#word3]
        int[] array4 = {1,2,3};
        String str14 = method1(array4);
        System.out.println(str14);

        //------------------键盘输入一个字符串,统计字符种类出现次数
        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个字符串:");
        String str15 = sc.next();
        method2(str15);

        //------------------------------static静态变量
        Student stu1 = new Student();
        stu1.setName("小明");
        stu1.setAge(17);
        Student.setRoom("503");
        System.out.println("姓名:" + stu1.getName() + " 年龄:"
                + stu1.getAge() + " 教室:" + Student.getRoom());

        Student stu2 = new Student();
        stu2.setName("小红");
        stu2.setAge(16);
        System.out.println("姓名:" + stu2.getName() + " 年龄:"
                + stu2.getAge() + " 教室:" + Student.getRoom());

        //--------------------Array
        int[] array5 = {9,8,7,6,5,4,3,2,1};
        String str16 = Arrays.toString(array5);//数组变字符串
        System.out.println(str16);
        Arrays.sort(array5);//升序
        System.out.println(Arrays.toString(array5));

        //-------------------将字符串升序排列,倒序打印
        String str17 = "423dsa23周[email protected]^&";
        char[] ch1 = str17.toCharArray();//转数组
        System.out.println(Arrays.toString(ch1));
        Arrays.sort(ch1);//升序
        System.out.println(Arrays.toString(ch1));
        for (int i = 0; i < ch1.length; i++) {//倒序打印
            System.out.print(ch1[ch1.length-i-1]);
        }

        //------------------Math类
        double num1 = -3.14;
        System.out.println(Math.abs(num1));
        System.out.println(Math.ceil(num1));
        System.out.println(Math.floor(num1));
        System.out.println(Math.round(num1));

        //--------------------计算-10.8到5.9之间,绝对值大于6或小于2.1的整数个数
        double min = -10.8;
        double max = 5.9;
        int b = 0;
        for (double i = min; i < max; i++) {
            double a = Math.abs(i);
            System.out.println(a);
            if(a > 6 || a < 2.1){
                b++;
            }
        }
        System.out.println("符合条件的个数为:" + b);
    }

    public static String method1(int[] array) {
        String str = "[";
        for (int i = 0; i < array.length-1; i++) {
            str += "word" + array[i] + "#";
        }
        str += "word" + array[array.length-1] + "]";
        return str;
    }

    public static void method2(String str) {
        char[] ch = str.toCharArray();
        int a = 0,b = 0,c = 0,d = 0;
        for (int i = 0; i < ch.length; i++) {
            if(ch[i] >= '0' && ch[i] <='9'){
                a++;
            }
            else if(ch[i] >= 'A' && ch[i] <= 'Z'){
                b++;
            }
            else if(ch[i] >= 'a' && ch[i] <= 'z'){
                c++;
            }
            else{
                d++;
            }
        }
        System.out.println("数字个数为:" + a);
        System.out.println("大写字母个数为:" + b);
        System.out.println("小写字母个数为:" + c);
        System.out.println("其他个数为:" + d);
    }
}
package day08;

public class Student {
    String name;
    int age;
    static String room;//静态变量

    static{                                   //静态代码块,只执行一次
        System.out.println("先执行了静态代码块。");
    }

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public static String getRoom() {
        return room;
    }


    public static void setRoom(String room) {
        Student.room = room;
    }

    public String getName() {
            return name;
    }

    public void setName(String name) {
            this.name = name;
    }

    public int getAge() {
            return age;
    }

    public void setAge(int age) {
            this.age = age;
    }
}