Java基础之常用类的理解

Java基础之常用类

  • 基本数据类型的包装类
  • 字符串的相关操作
    • 不可变字符序列
    • String类常用的方法(1)
    • String类常用的方法(2)
  • #字符串比较
  • #上机练习1—会员登录训练要点:
  • #上机练习2--判断字符出现次数
  • StringBuffer类与StringBuilder类
  • #StringBuffer 和Stringbuilder的区别
  • # 上机练习3--实现商品批发总金额显示
  • Date时间类
  • 枚举
  • # 上机练习4—枚举的使用

基本数据类型的包装类

包装类的概述:是将基本数据类型封装到一个类中,包含属性和方法,方便对象操作。
	包装类位于java.lang包中。
自动装箱和自动拆箱
	自动装箱:基本数据类型自动地封装到与它相同类型的包中。
public class TestInteger {
    public static void main(String[] args) {
        //基本数据类型转换为包装类
        //有Interger来进行操作
        int a =21;
        Integer i1 =new Integer(a);
        Integer intvalue =new Integer(21);
        System.out.println(i1);
        System.out.println(intvalue);
        }
      }

自动拆箱:包装类对象自动转换为基本数据类型
//包装类转换基本数据类型

//包装类转换基本数据类型
        Integer i = new Integer(25);
        i = i.intValue();

.var会自动补其中的操作;

字符串的相关操作

不可变字符序列

无处不在的字符串:
生活中的字符串:1.“欢迎进去Java世界”
2.“HelloWorld”
3.“教育改变生活”

使用String来存储对象
String类位于java.lang包中,具有丰富的方法
计算字符串的长度、比较字符串、连接字符串、提取字符串

String类常用的方法(1)

char charAt(int index)
返回字符串中第index个字符。  boolean equals(String other)
如果字符串与other相等,返回true
 boolean equalsIgnoreCase(String other)
如果字符串与other相等(忽略大小写),则返回true
 int indexOf(String str) lastIndexOf(String str,int idx)
 int length()
返回字符串的长度。  String replace(char oldChar,char newChar)
返回一个新串,它是通过用 newChar 替换此字符串中出现的所有oldChar 而生成的

String类常用的方法(2)

boolean startsWith(String prefix)
如果字符串以prefix开始,则返回true
 boolean endsWith(String prefix)
如果字符串以prefix结尾,则返回true
 String substring(int beginIndex)
 String substring(int beginIndex,int endIndex)
返回一个新字符串,该串包含从原始字符串beginIndex到串尾戒endIndex-1 的所有字符
 String toLowerCase()
返回一个新字符串,该串将原始字符串中的所有大写字母改成小写字母
 String toUpperCase()
返回一个新字符串,该串将原始字符串中的所有小写字母改成大写字母
 String trim()
返回一个新字符串,该串删除了原始字符串头部和尾部的空格

#字符串比较

equals判断字符串值相等,==判断字符串对象引用相等!

        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

#上机练习1—会员登录训练要点:

String类的使用。 – 带参方法的定义和使用
▪ 需求说明: – 实现会员注册,要求用户名长度不小于3,密码长度不小于6,注册时两次
输入密码必须相同

public class Register {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("欢迎进入会员注册系统");
        boolean flag = true;
        while (flag) {
            System.out.print("\n请输入用户名:");
            String name = sc.next();
            System.out.print("请输入密码:");
            String pwd = sc.next();
            System.out.print("请再次输入密码:");
            String pwd2 = sc.next();
            if (name.length() < 3 || pwd.length() < 6) {
                System.out.print("用户名长度不能小于3,密码长度不能小于6!");
            } else if (!pwd.equals(pwd2)) {
                System.out.print("两次输入的密码不相同!");
            } else if (name.length() >= 3 && pwd.length() >= 6 &&		  pwd.equals(pwd2)) {
                System.out.print("注册成功!请牢记用户名和密码!");
                break;
            }
        }

    }
}

字符串常用的提取方法
可以查看API来进行方法提取

#上机练习2–判断字符出现次数

需求说明: – 输入一个字符串,输入一个字符,判断该字符在该字符串中出现的次数

public class StringDemo{
	public static void main (String []args){
		//创建对象
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String s = sc.next();
        System.out.println("请输入要查找的字符:");
        String s1 = sc.next();
        //存放每个数组元素
        String [] strings = new String[s.length()];
        //计算每个字符出现的次数
        int count = 0;
        //把字符转换成数组
        for (int i = 0; i <strings.length ; i++) {
            strings[i] = s.substring(i,i+1);
        }
        //挨个字符进行查找
        for (int i = 0; i <strings.length ; i++) {
            if(strings[i].equals("爱")){
                count++;
            }
        }
        System.out.println("一共有:"+count+"爱");
	}
}

StringBuffer类与StringBuilder类

StringBuffer:
String增强版
字符缓冲区,是一个容器。
StringBuffer声明
创建空StringBuffer对象
StringBuffer sb = new StringBuffer();
StringBuffer sb = new StringBuffer(“aaa”);
sb.toString();
//转化为String类型 创建一个变量存储字符串
aaa
StringBuffer的使用
sb.append("**"); //追加

        StringBuffer sb = new StringBuffer("青春无悔");
        int num = 110;
        StringBuffer sb1 = sb.append("我心永恒");
        System.out.println(sb1);
        StringBuffer sb2 =  sb1.append("啊");
        System.out.println(sb2);
        StringBuffer sb3 =sb2.append(num);
        System.out.println(sb3);

利用StringBuffer类的length()和insert ()方法实现需求
▪ 将一个数字字符串转换成逗号分隔的数字串,即从右边
开始每三个数字用逗号分隔

 public class TestInsert {
   public static void main(String[] args) {
     Scanner input = new Scanner(System.in);
     System.out.print("请输入一串数字: ");
     String nums = input.next();
     StringBuffer str=new StringBuffer(nums);
     for(int i=str.length()-3;i>0;i=i-3){
     str.insert(i,',');
     }
     System.out.print(str);
    }
 }

#StringBuffer 和Stringbuilder的区别

▪StringBuilder:可变字符序列、效率高、线程不安全
▪ StringBuffer:可变字符序列、效率低、线程安全

# 上机练习3–实现商品批发总金额显示

训练要点: – StringBuffer类的使用
– 方法的定义和使用
▪ 需求说明: – 登录验证通过后,显示批发商品信息;输入批发商品编号和数量,以
指定格式显示总金额
▪ 实现思路: – 1、创建类Goods
– 2、创建方法show()
– 3、创建方法change()
▪ 难点指导: – 格式化输出

public class Goods{
	//定义商品
	//创建一个数组将对象装进去
	String [] goods = new String[]{"电风扇","洗衣机","电视机","冰箱","空调机"};
	//定义商品价格,同上
	double [] price = new double [] {124.23,4500.0,8800.9,5000.88,4456.0};
//用boolean类型来判断登录验证是否通过
public boolean login(){
		bollean flag = false;
		Scanner input = new Scanner(System.in);
		System.out.println("请输入用户名:");
		String name = intput.next(0;
		System.out.println("请输密码:");
		String cipher = input.next();
		//用equals是对字符串的比较
		if(name.equals("张三") && cipher.equals("123456")){
			System.out.println("登录成功");
			flag = true;
		}else{
			System.out.println("用户密码不对,请重新输入");
			flag = false;
			
		}
		
	}
		return flag;
}
//、创建方法change(),格式化输出
public StringBuffer change(double d){
        StringBuffer stringBuffer=new StringBuffer(String.valueOf(d));//把double类型的数组用valueOf包装成String类型
 //index Of方法,查找指定内容,第一次出现索引值,如果没有则返回为-1,有则返回出现第一次出现的下标
        for(int i=stringBuffer.indexOf(".")-3;i>0;i=i-3){//可以看到金额的显示形式,从第一此出现的位置减去3个位置的时候插入","所以这里的for循环开始从j=i-3开始,依次在后面的移动三个位置,让后进行循环输出。
            stringBuffer.insert(i,',' );//insert方法在指定索引的位置进行插入
        }
        return stringBuffer;
}
//创建方法show()
 public void show(){
        System.out.println("****************欢迎进入商品批发城**************");
        System.out.println("\t\t编号\t商品\t价格\t\t");
        for(int i=0;i<goods.length;i++){
            System.out.print("\t\t"+(i+1)+"\t");
            System.out.print(goods[i]+"\t");
            System.out.print(change(price[i]));
            System.out.println(" ");
        }
    }
    //创建测试类进行操作
  public class TestDemo{
    public static void main(String[] args) {
        Goods s = new Goods();
        String name;
        double money = 0;
        double num;
        s.login();
        s.show();
        Scanner input = new Scanner(System.in);
        System.out.print("请输入您批发的商品编号:");
        int hao = input.nextInt();
        switch(hao){
            case 1:
                name="电风扇";
                money=124.23;
                break;
            case 2:
                name="洗衣机";
                money=4500.0;
                break;
            case 3:
                name="电视机";
                money=8800.9;
                break;
            case 4:
                name="冰箱";
                money=5000.88;
                break;
            case 5:
                name="空调";
                money=4456.0;
                break;
        }
        System.out.println("请输入批发的数量:");
        int shu = input.nextInt();
        num=money*shu;
        System.out.println("您需要付款"+s.change(num));
      }
   }
}   	

Date时间类

Date
表示日期和时间,代表一个特定的时间,精确毫秒
Date类的常用方法
getTime()
setTime( long time )
DateFormat
日期格式化的类
SimpleDateformat
是一个具体的类,用于区域设置敏感的方式格式和解释日期
Calender
抽象类,用于设置日期和联合获取时间/时间数据的特定部分

public class DateDemo1{
	public static void main(String[] args){
	//public Date(),分配一个date对象,并初始化,以便分配的时间精确
	//创建对象,以此来获取电脑中的时间
	Date d1 = new Date();
	System.out.println(d1);
	
	//public date(lone date)分配一个date对象并将初始化为表示从标准指定到毫秒数
	long date = 1000*30*60;
	Date d2 = new Date(date);
	System.out.println(d2);
	//创建日期
	Date 的= new Date();
	//public long getTime() 获取日期对象,从1970年1月1日开始到现在的毫秒数;
	System.out.println(d.getTime());
	System.out.println(d.getTime()*1.0/1000/60/60+"年")
	//public void steTime(long time)设置时间,给的是毫秒数
	long time  = System.currentTimeMillis();
	d.setTime(time);
	System.out.println(d);
	}
}

枚举

有一组固定的常量组成的类型
只有取特定值的一个
使用Enum关键字
所有枚举类型隐约继承 Java.lang.enum包

# 上机练习4—枚举的使用

需求说明
为JavaSE课程三个单元定义枚举:U1,U2,U3分别表示初级,中级,高级
编程输出每个单元的学习目标
创建course类来存储三个单元

//创建Course来存储三个单元
public enum Course {
    U1,U2,U3 // 代表初级、中级、高级
}

创建测试类

public class Test{
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入1,2,3");
		int num = sc.next();
		//给三个单元定义一个统一的变量
		Course u;
		//给三个单元赋值
		if(num == 1){
			u = Course.U1;
		}else if(num == 2){
			u = Course.U2;
		]else {
			u = Course.U3;
		}
		//利用Switch结构来判断里面的值,来执行相应操作
		Switch(u){
			case U1;
				System.out.println("初级课程");
				break;
			case U2;
				System.out.println("中级课程");
				break;
			case U3;
				System.out.println("高级课程");
				break;
			default:
				break;
		}
	}
}

你可能感兴趣的:(java,数据结构,开发语言)