Java系统类库
主要知识点:String类,数据类型包装类,Date类,SimpleDateFormat类
讲解:
Develop an application to check the validity of a password
● Must be between 8 and 15 characters in length
● May not contain spaces
● Must contain at least one nonnumeric uppercase character and one nonnumeric lowercase character
● Must contain at least one numeric digit
public static void main(String[] args) {
/*
* 常见的系统类库(jdk提供很多*.jar文件:本质上就是压缩文件,里面包含了很多的
class文件)
* 字符串String:常见操作包含取字符串,求长度,查找子串,取出子串,拆分,比较,替
换等
* 数据类型包装类
* 日期时间类
* 集合类
* 主要学习方法是利用jdk所提供的帮助文档(document)进行查询,对于每一类我们只需
* 要了解类所提供的常见的方法
* */
//首先定义5个布尔型变量来记录五个条件检查的结果
boolean lengthOk = false;
boolean hasSpace = false;
boolean hasUpperCase = false;
boolean hasLowerCase = false;
boolean hasDigit = false;
System.out.println("请输入密码,必须符合以下要求:");
Scanner scan = new Scanner(System.in);
String password = scan.nextLine();
int len = password.length();
//长度判断
if(len>= 8 && len<=15){
lengthOk = true;
}
//逐一取出每一字符进行判断,并记录判断结果
for (int i = 0; i < len; i++) {
char c = password.charAt(i);
if(c == ' '){
hasSpace = true;
}
if(c >= 'A' && c <= 'Z'){
hasUpperCase = true;
}
if(c >= 'a' && c <= 'z'){
hasLowerCase = true;
}
if(c >= '0' && c <= '9'){
hasDigit = true;
}
}
//根据布尔型变量里的记录给出相关的结果
String info ="";
if(lengthOk && !hasSpace && hasUpperCase && hasLowerCase && hasDigit){
/*lengthOk && !hasSpace && hasUpperCase && hasLowerCase && hasDigit
同时为真
*/
info = "符合要求";
System.out.println("恭喜你,你的密码’"+password+"‘"+info);
}else {
if(!lengthOk){
info +="长度不符合要求\n";
}
if(hasSpace){
info +="密码包含了空格\n";
}
if(!hasUpperCase){
info +="密码至少需要一个大写\n";
}
if(!hasLowerCase){
info +="密码至少需要一个小写\n";
}
if(!hasDigit){
info +="密码至少需要一个数字\n";
}//根据布尔型变量的记录拼接错误提示信息
//输出结果
System.out.println("你的密码’"+password+"‘无效,原因如下:");
System.out.println(info);
}
}
####
包装类介绍
\color{#FF0000}{包装类介绍}
包装类介绍
● 在java的设计中提倡一种思想:“一切皆对象”,那么这样一来就出现了一个矛盾,从数据类型的划分中可以知道JAVA中的数据类型分为基本数据类型和引用数据类型,但是基本数据类型怎么能够称为对象呢?此时,就需要将基本数据类型进行包装,将八种基本数据基本类型变为一个类的形式,那么者也就是包装类的作用。
包装类应用( I n t e g e r 、 F l o a t 为例) \color{#FF0000}{包装类应用(Integer、Float为例)} 包装类应用(Integer、Float为例)
● 包装类在实际应用中用得最多的还在于字符串变为基本数据类型的操作上,例如:将一个全由数字组成的字符串变为一个int或float类型的数据。在Integer和Float类中分别提供了以下的两种方法:
♦A 、Integer类(字符串转int型)
♦ public static int parseInt(String s) throws NumberFormatException
♦B 、Float类(字符串转float型)
♦ public static float parseFloat(String s) throws NumberFormatException
#### 字符串变为基本数据类型 \color{#FF0000}{字符串变为基本数据类型} 字符串变为基本数据类型
public class String_to_Basic {
public static void main(String[] args) {
String str1 = "30";//由数字组成的字符串
String str2 = "30.3";//由数字组成的字符串
int x = Integer.parseInt(str1);//将字符串变为int型
float f = Float.parseFloat(str2);//将字符串变为float型
System.out.println("整数乘方: "+x+"*"+x+" = "+(x*x));
System.out.println("小数乘方: "+f+"*"+f+" = "+(f*f));
}
}
D a t e 类 \color{#FF0000}{Date类} Date类
● Date类是一个相对较为简单的操作类,在使用中直接使用java.util.Date类的构造方法并进行输出就可以得到一个完整的日期。
C a l e n d a r 类 \color{#FF0000}{Calendar类} Calendar类
● Canlendar类可以将取得的时间精确到毫秒。但是,这个类本身是一个抽象类,从之前学习到的知识可以知道,如果想要使用一个抽象类,则必须依靠对象的多态性,通过子类进行父类的实例化操作,Calendar的子类是GregorianCalendar类。
S i m p l e D a t e F o r m a t \color{#FF0000}{SimpleDateFormat} SimpleDateFormat
● 在项目开发中,会经常将一个日期格式转换为另外一种日期格式,如下所示:
♦ 原日期:2008-10-19 10:11:30.345
♦ 转换后日期:2008年10月19日 10点11分30秒345毫秒
● 从以上的两个日期可以发现,日期的数字完全一样,只是日期格式有所不同而已,要想实现以上的转换功能就必须使用java.test包中的SimpleDateFormat类完成。
常用构造方法:
SimpleDateFromat
public SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。注:此构造方法可能不支持所有语言环境。要覆盖所有语言环境,请使用DateFormat类中的工厂方法。
参数:
pattern - 描述日期和时间格式的模式
抛出:
NullPointerException - 如果给定的模式为 null
IllegalArgumrntException - 如果给定的模式无效
格式化模板 \color{#FF0000}{格式化模板} 格式化模板
● 如果想完成转换,首先必须先定义出一个完整的日期转化模板,模板中通过特定的日期标记可以将一个日期格式中的日期数字提取出来。
format方法
format
public final String format(Date date)
将一个Date格式化为日期/时间字符串
参数:
date- 要格式化为时间字符串的时间值。
返回:
已格式化的时间字符串。
import java.text.SimpleDateFormat;//导入相应的包
import java.util.Date;
public class Test {
public static void main(String[] args) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:MM:ss");
//格式字符串
Date today = new Date();
System.out.println(today.toString());//默认格式输出
String todayStr = df.format(today);
System.out.println(todayStr);//按指定格式输出
}
}