我是靠谱客的博主 微笑小丸子,最近开发中收集的这篇文章主要介绍JAVASE02-Unit02: 正则表达式 、 Object 、 包装类    正则表达式 、 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);//124
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;
}
}

 

转载于:https://www.cnblogs.com/tangshengwei/p/6218265.html

最后

以上就是微笑小丸子为你收集整理的JAVASE02-Unit02: 正则表达式 、 Object 、 包装类    正则表达式 、 Object 、 包装类    的全部内容,希望文章能够帮你解决JAVASE02-Unit02: 正则表达式 、 Object 、 包装类    正则表达式 、 Object 、 包装类    所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部