第九章:常用类(二)

  1. String

    String 继承了Object类,但重写了toString   equals   hashCode  方法。

  2. StringBuffer/StringBuilder:

    带有缓冲区的字符串。

    和String的区别在于能重新赋值。

    只能用append方法进行字符串的拼接,不能用“+”。

    StringBuffer线程是安全的,但运行速度慢,StringBuilder的线程是不安全的,所以运行速度更快。

  3. Math类:

    Object的子类,包含各种数字运算的方法,有两个常量,底数E和圆周率PI。

  4. 包装类:

    8种基本类型数据对应8种类:

    byte:Byte。

    int:Integer。

    long:Long。

    double:Double。

    short:Short。

    char:Character。

    float:Float。

    boolean:Boolean。

    装箱/拆箱:

    装箱:将一个基本类型转为对应的包装类的过程(系统自动完成)。

    Integer ii=9;Integer  ii=new Integer(i);

    拆箱:将一个包装类的对象转换为对应的基本类型数据的数据。

    int i=ii;

  5. Date类:java.util包下。

    Date类为时间类,精确到毫秒。

    用Date()创建的对象是当前计算机的时间。

    用Date(long time)构造器创建的对象是一个相对时间,参照时间是1970年1月1日0点0分0秒,转换成中国时间会晚8小时。

  6. Calendar类:日历,万年历类。

    Calendar类是一个抽象类,只能用实例化的子类 GregorianCalendar类。

    setTime和gatTime用于Date和Calendar的相互转换。

  7. 判断闰年的方法:  boolean  isLeapYear(int year)
  8. 增加时间的方法:  void add (int field,int x)
  9. 抽象时间格式化(按照一定的格转化时间)

    DateFormat

SimpleDateFormat  a=new  SimpleDateFormat("yyyy年MM月dd日  hh:mm:ss  E")

String xx=a.format(d);

年只能用y表示,同样:月M,日d,小时h,分钟m,秒s,星期E

parse

将一个指定格式的日期格式转换位Date对象。

作业1.

创建一个Student类,该有String类型的学号stuNo,String类型的姓名,要求将该类所有的成员变量进行封装,并且提供公共的getter和setter方法,重写equals方法,只要学生的学号相同即返回true,重写toString()方法,toString方法返回值类似”姓名:张三  学号:201301 ”

public class Student {

private String stuNo;

private String name;

public boolean equals(Object obj) {

Student st=(Student)obj;

boolean b=this.stuNo.equals(st.stuNo);

return b;

}

public String toString() {

return "姓名:"+name+"  学号:"+stuNo;

}

public String getStuNo() {

return stuNo;

}

public void setStuNo(String stuNo) {

this.stuNo = stuNo;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public static void main(String[] args) {

Student zhangsan=new Student();

zhangsan.setStuNo("15091135");

zhangsan.setName("张三");

Student li4=new Student();

li4.setName("li4");

li4.setStuNo("15091133");

System.out.println(li4.equals(zhangsan));

System.out.println(zhangsan.toString());

System.out.println(li4.toString());

}

}

作业2:

在注册时通常要验证用户名和密码是否合法,运用学习过的知识完成如下操作: 用户名长度大于等于6位,必须包含数字和英文字母密码长度大于等于8位,必须包含特殊符合_或者$,英文字母以及数字 以上两个条件同时成立注册才能成功

boolean isLetter(charch)字母

boolean isDigit(char ch)数字

import java.util.Scanner;

public class Registered {

public static void main(String[] args) {

boolean zzm = false, zsz = false, mzm = false, msz = false;

System.out.println("请输入您想用的用户名");

Scanner sc = new Scanner(System.in);

String id = sc.nextLine();

char[] a = id.toCharArray();

System.out.println("请输入您想用的密码");

Scanner sc2 = new Scanner(System.in);

String pswd = sc2.nextLine();

char[] b = pswd.toCharArray();

for (int i = 0; i < a.length; i++) {

zzm = Character.isLetter(a[i]);

if (zzm == true) {

break;

}

}

for (int i = 0; i < a.length; i++) {

zsz = Character.isDigit(a[i]);

if (zsz == true) {

break;

}

}

for (int i = 0; i < b.length; i++) {

mzm = Character.isLetter(b[i]);

if (mzm == true) {

break;

}

}

for (int i = 0; i < b.length; i++) {

msz = Character.isDigit(b[i]);

if (msz == true) {

break;

}

}

if(id.length()<6&&pswd.length()<8){

System.err.println("用户名长度大于等于6位,密码长度大于等于8位.");

}else if(zzm==true&&zsz==true&&mzm==true&&msz==true&&(pswd.indexOf("_")!=-1)|pswd.indexOf("$")!=-1){

System.out.println("恭喜,账号注册成功");

}else{

System.err.println("账号和密码必须包含数字和英文字母,密码必须包含特殊符合_或者$,英文字母以及数字 ");

}

}

}

时间: 2024-11-17 16:59:34

第九章:常用类(二)的相关文章

第九章 常用模块

第九章 常用模块 1.模块介绍 什么是模块: 模块就是我们通常说的py文件(因此写python程序的时候不要命名为模块的名称),模块是写好了但不直接使用的功能 为什么这些模块中提供的方法 不能像print这些内置函数一样直接使用呢? 是因为如果所有的模块都是执行python程序直接导入了,会非常占用内存空间的 常见导入模块的方法 1.import time 2.from time import sleep 模块的分类: 内置模块 扩展模块 https://pypi.org 自定义模块 2.扩展数

J2SE基础:8.系统常用类二

1:基础数据与封装类型之间的转型 A:基础数据类型--->封装类型(对象类型) Boolean boolean_1 = new Boolean(true); byte ---->Byte short---->Short char---->Character int--->Integer long-->Long float-->Float double-->Double B:封装类型--->基础类型 Integer.intValue--->int

第九章 常用模块(续)

1.序列化模块 1.1 什么叫序列化 例:有一个班级信息字典{'10010000':{'name':'zhangsan', 'age':22, 'class':'python21'},...},在程序结束后需要保存,而在python中只有字符串能保存到文件中.再次使用字典的时候,可以使用eval转化,但是非常不安全,所以引入了序列化 序列化就是 数据类型转化成字符串的过程 -- 数据类型 --> 字符串的过程 字符串化也叫做序列化 1.2 为什么要用序列化呢?(固态存储.网络传输) 数据从内存到

Java常用类(二) Scanner类和大数类

二.Scanner类 有C系语言基础的可能都比较熟悉scanf("%d",&a);和cin>>a;这种代码,也打开了程序交互的第一道门.因此,这些程序员开始学Java时都会先找输入输出(指标准输入输出),Java的输出就非常常见,任何一个Java教程基本都是以输出开始的,然而输入却在很后面提到,因为Java的输入不似输出那么简单.现在我们就来介绍一下实现输入的Scanner类. 1.Scanner基本使用方法和next()系列方法 一个从键盘输入的基本示例: imp

常用类(二) StringBuffer Integer

一.StringBuffer(线程安全的可变字符序列) 1.构造方法:  public StringBuffer()  //构建一个字符串缓冲区,默认初始容量为16:  public StringBuffer(int capacity)  //构建一个指定容量为 int capacity的字符串缓冲区:  public StringBuffer(String str)  //构建一个带有字符串String str的字符串缓冲区,容量为str + 16:   获取的方法:    public in

《Unity_API解析》 第九章 Random类

Random类是unity中用于产生随机数的类,不可实例化,只有静态属性和静态方法. Random类静态属性 insideUnitCircle属性:圆内随机点 public static Vector2 insideUnitCircle(get;) 此属性用于返回一个半径为1的院内的随机点坐标,返回值类型为Vec2类型. 以下两种属性与此属性类似 insideUnitSphere属性:返回一个半径为1的球内的随机点坐标,返回值为Vector3类型. onUnitSphere属性:返回一个半径为1

第九章 文字实例二

<html> <head> <title>CSS控制Title</title> <style> <!-- h1{ font-family:arial,sans-serif; font-size:28px; color:#336699; padding-bottom:4px; /*下方补白*/ border-bottom:1px solid #999999; /*线条 宽度 样式 颜色 */ } h1{ font-family:arial,s

C语言基础 第九章 常用字符串操作函数

sscanf():可以将一个长的字符串按照需求分割成想要的格式 实例: #include<stdio.h> #include<string.h> int main() { //1. 取指定长度的字符串 char str[100]; sscanf("12345","%4s",str); printf("%s\n",str);//1234 //2. 格式化时间 int year, month, day, hour, minut

第七章:常用类

第七章:常用类 包装类 java中有8中基本类型,对应有八种包装类作用:包装类中封装了该类型常用的属性和方法,以方便操作.byte---->Byteshort--->Shortint--->Integerlong---->Longfloat---->Floatdouble---->Doublechar---->Characterboolean---->Boolean装箱:将基本数据类型转换成包装类,经常通过构造方法完成.Integer i = new Int

Java 第九章 类的方法 (二)笔记

Java 第九章 类的方法 (二) 一.带参的语法:     访问修饰符 返回值类型 方法名称(参数列表){         方法体: }    例:public String getFuirt(String fuirt){    String zhi=fuirt+m+"汁";    return zhi; } 二.调用带参方法:      同类中, (非静态方法),方法名(参数列表):      不同类中,对象.方法名(参数列表): 三.带参方法的参数:     1.形参的数据类型和