JAVASE02-Unit02: 正则表达式 、 Object 、 包装类
正则表达式 、 Object 、 包装类
字符串支持正则表达式的方法一:
package day02;
/**
* 字符串支持正则表达式的方法一:
* boolean matches(String regex)
* 该方法会使用给定的正则表达式验证当前字符串是否
* 满足格式要求,满足则返回true
* 需要注意,给定的正则表达式就算不指定边界符(^,$),
* 也是全匹配验证。
* @author adminitartor
*
*/
public class String_Matches {
public static void main(String[] args) {
String email = "fancq@tedu.cn";
/*
* 邮箱的正则表达式:
* [a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\.[a-zA-Z]+)+
*/
String regex = "[a-zA-Z0-9_]+@[a-zA-Z0-9_]+(\\.[a-zA-Z]+)+";
System.out.println(regex); boolean match = email.matches(regex);
if(match){
System.out.println("是邮箱");
}else{
System.out.println("不是邮箱");
} }
}
String_Matches.java
字符串支持正则表达式方法二:
package day02;
/**
* 字符串支持正则表达式方法二:
* String[] split(String regex)
* 将当前字符串中满足正则表达式的部分进行拆分
* 返回所有被拆分的部分
* @author adminitartor
*
*/
public class String_Split {
public static void main(String[] args) {
String str = "abc123def456ghi789jkl";
/*
* 按照数字部分进行拆分,保留所有英文
* 部分
*
* 若在拆分字符串的过程中连续匹配了两次
* 要拆分的内容,那么它们中间会拆分出一
* 个空字符串,但是在字符串末尾若连续匹配
* 那么所有拆分出的空字符串会被忽略。
*/
// String regex = "[0-9]+";
String regex = "[0-9]";
String[] array = str.split(regex);
System.out.println("拆分出:"+array.length+"项");
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
} }
}
String_Split.java
使用String的split方法实现图片重命名
package day02;
/**
* 使用String的split方法实现图片重命名
* @author adminitartor
*
*/
public class Demo1 {
public static void main(String[] args) {
String imgName = "1.jpg"; String[] names = imgName.split("\\.");
//获取当前系统时间毫秒值作为图片名
long time = System.currentTimeMillis(); imgName = time+"."+names[1];
System.out.println(imgName); }
}
RenamePng.java
将当前字符串满足正则表达式的部分替换为给定内容
package day02;
/**
* String replaceAll(String regex,String str)
* 将当前字符串满足正则表达式的部分替换为给定内容
* @author adminitartor
*
*/
public class String_ReplaceAll {
public static void main(String[] args) {
String str = "abc123def456ghi789jkl";
/*
* 将字符串中的数字部分替换为"#NUMBER#"
*/
str = str.replaceAll("[0-9]+", "#NUMBER#");
System.out.println(str);
}
}
String_ReplaceAll.java
和谐用语
package day02;
/**
* 和谐用语
* @author adminitartor
*
*/
public class Demo2 {
public static void main(String[] args) {
String regex = "(wqnmlgdsb|cnm|mdzz|tmd|djb|nc|nnd|yyd)"; String message = "wqnmlgdsb!你怎么这么nc!cnm!你就是个djb!"; message = message.replaceAll(regex, "****");
System.out.println(message); }
}
Rename.java
使用Point测试Object方法的重写
package day02;
/**
* 使用Point测试Object方法的重写
* @author adminitartor
*
*/
public class Point {
private int x;
private int y; public Point(){ } public Point(int x, int y) {
super();
this.x = x;
this.y = y;
} public int getX() {
return x;
} public void setX(int x) {
this.x = x;
} public int getY() {
return y;
} public void setY(int y) {
this.y = y;
}
/**
* API文档中有所说明,当我们需要使用到一个
* 类的toString方法,通常就需要重写该方法。
* 否则Object中该方法返回的是对象的句柄信息。
*
* 返回的字符串原则上应当包含需要了解当前对象
* 的属性信息,具体根据需求而定,没有统一的格式
* 要求。
*/
public String toString(){
return "("+x+","+y+")";
}
/**
* equals方法是为了判断两个对象内容是否
* 一样。
* 通常判断对象属性间的值是否一致,但是要结合
* 实际工作中的需求,并不一定两个对象所有属性
* 值都相同才可以。
*/
public boolean equals(Object o){
if(o == null){
return false;
}
if(o == this){
return true;
}
if(o instanceof Point){
Point p = (Point)o;
//x,y都一样才认为内容一致
return this.x==p.x&&this.y==p.y;
} return false;
} }
Point.java
测试Point重写Object的方法
package day02;
/**
* 测试Point重写Object的方法
* @author adminitartor
*
*/
public class TestPoint{
public static void main(String[] args) {
Point p = new Point(1,2);
/*
* Object提供的toString方法返回的字符串
* 为该对象的引用,格式为:
* 类名@地址
* 通常这个格式也成为:对象的句柄
* 没有什么实际价值
*/
String str = p.toString();
System.out.println(str);
/*
* System.out.println(Object o)
* 该方法会将给定的对象的toString方法返回
* 的字符串输出到控制台。
*/
System.out.println(p); Point p1 = new Point(1,2); System.out.println(p==p1);//false
System.out.println(p.equals(p1));//true
}
}
TestPoint.java
package day02; public class TestInteger {
public static void main(String[] args) {
dosome("hello");
dosome(new Point(1,2));
int d = 1;
Integer ii = new Integer(d);
dosome(ii); d = ii.intValue();
} public static void dosome(Object obj){ }
}
TestInteger.java
包装类
package day02;
/**
* 包装类
* 包装类是为了解决基本类型不能直接参与面向对象开发
* 的问题。因为基本类型没有面向对象特性。
*
* 其中6个数字类型对应的包装类继承自Number
* Number是一个抽象类,定义了6个数字类型之间互转
* 的相关方法。
* @author adminitartor
*
*/
public class Integer_Number {
public static void main(String[] args) {
/*
* 基本类型转换为包装类的方式:
* 1:使用构造方法
* 2:使用静态方法valueOf(推荐)
*/
// Integer i1 = new Integer(1);
// Integer i2 = new Integer(1); //valueOf对于整数可以重用1字节内的整数对象
Integer i1 = Integer.valueOf(128);
Integer i2 = Integer.valueOf(128); System.out.println(i1==i2);
System.out.println(i1.equals(i2)); /*
* 包装类转换为基本类型
*/
int d = i1.intValue();
double dd = i1.doubleValue();
System.out.println(dd); short sh = i1.shortValue();
System.out.println(sh); byte b = i1.byteValue();
System.out.println(b); Double dou = Double.valueOf(123.123); d = dou.intValue();
System.out.println(d); }
}
Integer_Number.java
数字类型包装类有两个常量:
package day02;
/**
* 数字类型包装类有两个常量:
* MAX_VALUE,MIN_VALUE 分别保存的值为该包装类
* 对应的基本类型数据的取值范围
* @author adminitartor
*
*/
public class Integer_MAX_VALUE {
public static void main(String[] args) {
int imax = Integer.MAX_VALUE;
System.out.println("imax:"+imax); int imin = Integer.MIN_VALUE;
System.out.println("imin:"+imin); long lmax = Long.MAX_VALUE;
System.out.println("lmax:"+lmax);
}
}
Integer_MAX_VALUE.java
该方法可以将字符串解析为对应的基本类型
package day02;
/**
* 包装类支持一个静态方法 parseXXX(String str)
* 该方法可以将字符串解析为对应的基本类型,前提是
* 该字符串能正确描述该基本类型可以保存的值
* @author adminitartor
*
*/
public class Integer_ParseInt {
public static void main(String[] args) {
String str = "123";
int i = Integer.parseInt(str);
System.out.println(i+1);// double d = Double.parseDouble(str);
System.out.println(d+1);//124.123
}
}
Integer_ParseInt.java
自动拆装箱
package day02;
/**
* java自1.5发布后,推出了一个新特性:
* 自动拆装箱
* 所谓自动拆装箱是指编译器在编译源程序时会自动
* 补充代码将基本类型与包装类之间做转换。
* 这样的好处是我们可以省去互相转换的代码编写。
* @author adminitartor
*
*/
public class Integer_AutoBoxing {
public static void main(String[] args) { /*
* 编译器会自动补全代码,将引用类型转换为
* 基本类型:自动拆箱
* 下面的代码在编译后的class文件中为:
* int i = new Integer(1).intValue();
*/
int i = new Integer(1); /*
* 编译器会自动补全代码,将基本类型转换为
* 引用类型:自动装箱
* 下面的代码在编译后的class文件中为:
* Integer ii = Integer.valueOf(i);
*/
Integer ii = i;
}
}
Integer_AutoBoxing.java
equals和“==”:
euqals 比较内容是否一样,长得像不像;
== 比较的是地址;
把字符串,转基本类型,掉包装类,包装类(8个),为了解决基本类型不能直接参加到面向对象开发;
引用类型 = 基本类型
基本类型 = 引用类型
1.5版本后可以相互赋值,自动不.intvalue; intvaluof; 编译器补充代码了,叫自动拆装箱
Eclipse自动生成,set,get方法
package day01; public class Test {
private int x;
private int y; public Test(){ } ========选择:Source -- Gnerrate **** using fiels========== public Test(int x, int y) {
super();
this.x = x;
this.y = y;
} ===========选择:an setters==================
public int getX() {
return x;
} public void setX(int x) {
this.x = x;
} public int getY() {
return y;
} public void setY(int y) {
this.y = y;
} }
JAVASE02-Unit02: 正则表达式 、 Object 、 包装类的更多相关文章
- Day02:正则表达式 / Object / 包装类
JAVA正则表达式 实际开发中,经常需要对字符串数据进行一些复杂的匹配,查找,替换等操作. 通过"正则表达式",可以方便的实现字符串的复杂操作. 正则表达式是一串特定字符,组成一个 ...
- API和正则表达式
第一章 String & StringBuilderString类用类final修饰,不能被继承,String字符串被创建后永远无法被改变,但字符串引用可以重新赋值,改变引用的指向java字符 ...
- Java 之常用API(二)
Object类 & System类 日期相关类 包装类 & 正则表达式 Object类 & System类 1.1 Object类 1.1.1 概述 Object类是Java语 ...
- 莫逸风CSDN文章目录
『Ⅱ』-----随笔 莫逸风CSDN文章目录 The Programmer's Oath程序员的誓言-- 今天突发奇想写了一个小工具,CSDN文章目录生成器 vue去掉一些烦人的校验规则 输入npm ...
- Spring jdbc 对象Mapper的简单封装
一般查询实体的时候,都需要这么使用/** * 根据id查询 * * @return */ public Emp queryEmpById(Intege ...
- 【bird-front】全自动数据表格组件bird-grid
bird-grid是bird-front前端框架中实现的全自动数据表格组件.组件内部处理数据加载.分页.排序.查询.新增.编辑等一系列操作.让业务表格的开发从繁复的增删查改中脱离出来,编码简洁却又功能 ...
- C# textbox中输入时加限制条件 // C#Winform下限制TextBox只能输入数字 // 才疏学浅(TextBox 小数点不能在首位+只能输入数字)
textbox中输入时加限制条件 分类: C# winform2008-08-26 08:30 306人阅读 评论(0) 收藏 举报 textbox正则表达式object 1.用正则表达式! 2.使用 ...
- 201871010112-梁丽珍《面向对象程序设计(java)》第四周学习总结
项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址>http ...
- Mybatis源码研究7:缓存的设计和实现
Mybatis源码研究7:缓存的设计和实现 2014年11月19日 21:02:14 酷酷的糖先森 阅读数:1020 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...
- Java核心基础第2篇-Java基本语法
Java基本语法 本章一起来探讨下Java的基本语法.主要从以下几个方面展开: Java关键字 Java标识符 Java变量 Java数据类型 Java运算符 学完本章内容之后,我们对Java会有更深 ...
随机推荐
- BZOJ 2527 & 整体二分
Byteotian Interstellar Union有N个成员国.现在它发现了一颗新的星球,这颗星球的轨道被分为M份(第M份和第1份相邻),第i份上有第Ai个国家的太空站. 这个星球经常会下陨石雨 ...
- into outfile 生成sql脚本
select concat('insert into t_dm_stage(STAGE_ID,STAGE_NAME) values(',STAGE_ID,',','\'',STAGE_NAME,'\' ...
- ACM cigarettes
cigarettes 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 Tom has many cigarettes. We hypothesized that he ...
- ACM: HDU 1028 Ignatius and the Princess III-DP
HDU 1028 Ignatius and the Princess III Time Limit:1000MS Memory Limit:32768KB 64bit IO Form ...
- flex关于字符串转Boolean .
最近做一项目,输入一个boolean类型的参数,结果一致无法获取正确值,后在网上查找才发现原因如下,转帖保存一个: . "false" as Boolean //flase .&q ...
- flex的http URL转码与解码
private function httpEncoding(param:String):String{ //转码 return encodeURIComponent(param); } ...
- 1069. The Black Hole of Numbers (20)
For any 4-digit integer except the ones with all the digits being the same, if we sort the digits in ...
- [LintCode] House Robber III 打家劫舍之三
The thief has found himself a new place for his thievery again. There is only one entrance to this a ...
- Odoo 9 Odoo $ JQuery undifned
浏览器处于假死状态,查看console发现 odoo,jquery,$ 未定义三处错误,后台显示IOError: IOError: [Errno 2] No such file or director ...
- Odoo中的Javascript单元测试
前端页面利用QUnit进行单元测试,本文参考官方文档:https://www.odoo.com/documentation/8.0/reference/javascript.html 访问/web/t ...