String类
字符串相关的类
Java程序中的所有字符串文字(例如"abc")都实现为此类的实例
字符串是不变的 他们的值在创建后无法更改
int | length() | 返回字符串对象的长度 |
boolean | equals(Object obj) | 比较两个字符串的值是否相等(忽略大小写调ignoreCase) |
String | trim() | 除去字符串两端的空格 |
char | charAt(int index) | 返回指定下标处的字符 |
int | indexOf(String str) | 返回指定字符串 第一次在字符串出现的位置 |
int | lastIndexOf(String str) | 返回指定字符串 最后一次在字符串出现的位置 |
String | replace(String old,String new) | 替换新字符串 替换老字符串 第一个字符串可用正则表达式 |
String | substring(int start) | 从指定位置截取字符串到结尾 |
boolean | contains(String str) | 检查当前字符串是否包含str |
boolean | startWith(String str) | 检查当前字符串是否以str开头 |
boolean | endWith(String str) | 检查当前字符串是否以str结尾 |
Date类
Date 表示特定的时刻.精度为毫秒
返回值 | 方法 | 功能介绍 |
---|---|---|
long | getTime() | 返回当前的毫秒值(至19701-1-1 00:00:00) |
直接打印Date Java又进行了相关的操作 使打印效果 更加友好
SimpleDataFormatl类
SimpleDateFormat是一个用于以格式化和解析日期的具体类
(区域设置敏感 :不同国家 不同电脑设置都会让无参构造自适应 )
一般使用其有参构造 创建一个 指定格式的SimpleDateFormat对象
y:年 M:月d:日 H:时 m:分 s:秒 更多特定要求"占位符" 见API
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
Date date = new Date();
String dateStr = sdf.format(date);//将Date对象格式化为String
System.out.println(dateStr);
String str = "2022年02月18日";
Date num = sdf.parse(str);//将字符串解析为Date对象 Date对象中封装 long 类型的毫秒值
System.out.println(date.getTime());
// sdf.parse(); 会抛出一个异常 该异常产生的原因是 字符串的格式 和 SimpleDateFormat 对象的格式(构造方法中的格式)不匹配
包装类
每个基本数据类型 都有一个对应的包装类
byte Byte
short Short
int Integer
long Long
char Character
float Float
double Double
boolean Boolean
存在包装类的一个原因
基本数据类型 无法提供方法
类型之间的转化
String ---->int
int num = Integer.paseInt(str); //方式1 推荐
int num = Integer.valueOf("123").intValue();//方式2
int --->String
String str = 123+""; //方式1 推荐
String str = String.valueOf(123);//方式2
自动装箱和拆箱
装箱 基本数据类型转化为包装数据类型 Integer m = Integer.valueOf(123);
拆箱 包装数据类型转化为基本数据类型 int n = m.intValue();
自动指的是Java底层给我们自动数据类型转化 来保证程序的正确
Integer i =100;//自动装箱 Integer.valueOf(100)
int j = i+123;//自动拆箱 i.intValue()+123
Scanner类
一个简单的文本扫描程序,可以使用正则表达式解析基本类型和字符串。
Scanner使用分隔符模式将其输入分解为标记,该分隔符模式默认匹配空格。 将得到的token,转换成使用各种不同类型的值next方法
键盘录入
Scanner sc = new Scanner(System.in) //获得一个扫描器对象 扫描系统输入
int num = sc.nextInt();//将扫描得到的token 转换化为int 类型的值
Random类
该类的实例用于生成伪随机数流
Random rd = new Random();//该对象默认使用当前时间为随机种子
int randomNum= rd.nextInt(10);//生成 [0,10) 的i nt类型随机数
GUI
GUI:Graphical User Interface(图形用户接口)
java.awt 包:依赖本地 javax.swing包: 在awt 基础由java上实现
常用组件 所有Jxxx开头的组件 都在Javax. swing 包中
Jframe :窗体控件 容器
JButton :按钮控件
JLabel :标签
JTextFile :单行文本区域
JTextFile :多行文本区域
JPasswordField:密码文本区域 单行
Jframe常用设置
JFrame jf = new JFrame(); //创建对象 默认看不见
jf.setTitle("示例");
jf.setSize(300,300);//设置窗口大小
jf.setDefaultCloseOperation(3);//设置窗口关闭时所要执行的操作
jf.setLocationRelativeTo(null);//设置窗口在屏幕居中现实
jf.setAlwaysOnTop(true);//设置窗口 一直在最上方现实
jf.setLayout(null);//设置窗体中的布局方式使用绝对定位布局
...
jf.setVisible(true); // 设置窗体的可见性为true 窗体中所有组件添加完毕后 执行
JButton, JLabel, JTextFile, JTextFile , JPasswordField 设置
JButton btn = new JButton("登录");//创建 按钮对象
btn.setBounds(50,200,200,30);//设置按钮对象的 位置和大小
jf.add(btn);//窗体中添加 按钮对象
JLabel 展示图片
ImageIcon image = new ImageIcon("MyStudy_11\\image\\1.png");
JLabel label = new JLabel(image);//使用 有参构造添加图片
JOptionPane 弹窗提示
JOptionPane.showMessageDialog( jf, "用户名或密码为空!");//弹窗提示 第一个参数是 控件对象
行为监听-鼠标单击
btn.addActionListener(new ActionListener() {//这是一个匿名内部类
@Override
public void actionPerformed(ActionEvent e) {
//System.out.println("登录");
String name = textField.getText();
String pass = passwordField.getText();
if ( name.length() == 0 || pass.length() == 0) {
JOptionPane.showMessageDialog(btn, "用户名或密码为空!");
return;
}
if (userName.equals(name) && pw.equals(pass)) {
JOptionPane.showMessageDialog(btn, "登录成功!");
} else {
JOptionPane.showMessageDialog(btn, "用户名或密码错误!");
}
}
});