JAVA知识点

break目前位于内层的for循环,如何才能让break作用于外层的for循环?

答:可以标记解决,标记的命名只要符合标识符的命名规则即可。

使用细节: 不要再break语句之后,编写其他语句,永远都执行不到,编译报错。

日期格式化类:SimpleDateFormat

 		Date date = new Date(); //获取当前的系统时间。
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日   HH:mm:ss") ; //使用了默认的格式创建了一个日期格式化对象。
		String time = dateFormat.format(date);  //可以把日期转换转指定格式的字符串
		System.out.println("当前的系统时间:"+ time);

Math类

Math:类封装了很多数学的功能。在API文档中:java.lang.Math

 abs(double a)  获取绝对值

 ceil(double a)  向上取整               天花

 floor(double a)  向下取整              板

 round(float a)   四舍五入              

 random()   产生一个随机数. 大于等于 0.0 且小于 1.0 的伪随机 double 值

增强for循环

引入增强for循环的原因:在JDK5以前的版本中,遍历数组或集合中的元素,需先获得数组的长度或集合的迭代器,比较麻烦!增强for循环只能用在数组、或实现Iterable接口的集合类上。

语法格式: for(变量类型 变量 :需迭代的数组或集合){}。

For each是为了让你的代码变得简捷、和容易维护。

增强for循环要注意的细节:

1. 迭代器可以对遍历的元素进行操作,使用增强for循环时,不能对集合中的元素进行操作的。

2. 增加for循环与普通的for循环区别。

3. map的遍历。

自动装箱/拆箱

自动装箱:指开发人员可以把一个基本数据类型直接赋给对应的包装类。

自动拆箱:指开发人员可以把一个包装类对象直接赋给对应的基本数据类型。

包装类

基本数据类型

Byte

byte

Short

short

Integer

int

Long

long

Boolean

boolean

Float

float

Double

double

Character

char

对象变基本数据类型:拆箱

基本数据类型包装为对象:装箱

为了使得java的基本类型有更多的功能,java为其所有的基本类型提供了包装类来封装常见的功能。如:最大值、数值转换等。

将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。

所属的包:java.lang.*

常见应用一:

      获取最大最小值MAX_VALUE / MIN_VALUE

      整数类型最大值

      Integer.MAX_VALUE

System.out.println(Integer.MIN_VALUE);// -2147483648

System.out.println(Integer.MAX_VALUE);// 2147483647

应用二:

      基本数据类型和字符串之间的转换

      例:Integer的parseInt方法,intValue方法

      基本数据类型转换成字符串:

      1:基本数据类型+””

      2:基本数据类型.toString(基本数据类型值);

      例如  Integer.toString(34); //将34变成了”34”

基本数据类型转字符串

int i=100;

    String str=100+"";

    String string = Integer.toString(100);

字符串变基本数据类型

基本数据类型 a=基本数据类型包装类.parse基本数据类型(String str);

str="123";

    int parseInt = Integer.parseInt(str);

    System.out.println(parseInt);

        

注意:

public static int parseInt(String s)

Integer类中的parseInt方法是静态的 参数必须是数字格式

Double

str = "3.14";

    double parseInt2 = Double.parseDouble(str);

    System.out.println(parseInt2);

boolean b = Boolean.parseBoolean("true");

应用三:

      进制转换:

      十进制转成其他进制.

toBinaryString(int i):以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。

toHexString(int i):以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。

toOctalString(int i):以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。

那么其他进制转成十进制

parseInt(String radix);

parseInt(String s, int radix):使用第二个参数指定的基数,将字符串参数解析为有符号的整数。

 

​​​​​​​枚举类

枚举的实现:

       使用enum定义枚举类

       在枚举类中定义枚举值(大写)

enum Gender {

       MALE, FEMALE;

}

​​​​​​​正则表达式

正则表达式:其实一种规则,有自己特殊的应用,其作用就是针对于字符串进行操作。

正则:就是用于操作字符串的规则,其中这些规则使用了一些字符表示。

预定义字符类

.

任何字符(与行结束符可能匹配也可能不匹配)

\d

数字:[0-9]

\D

非数字: [^0-9]

\s

空白字符:[ \t\n\x0B\f\r]

\S

非空白字符:[^\s]

\w

单词字符:[a-zA-Z_0-9]

\W

非单词字符:[^\w]

System.out.println("a".matches("."));

    System.out.println("1".matches("\\d"));

    System.out.println("%".matches("\\D"));

    System.out.println("\r".matches("\\s"));

    System.out.println("^".matches("\\S"));

    System.out.println("a".matches("\\w"));

数量词

X?

X,一次或一次也没有

X*

X,零次或多次

X+

X,一次或多次

X{n}

X,恰好n次

X{n,}

X,至少n次

X{n,m}

X,至少n次,但是不超过m次

System.out.println( "a".matches(".") );

System.out.println( "a".matches("a") );

System.out.println("a".matches("a?") );

System.out.println( "aaa".matches("a*") );

System.out.println( "".matches("a+") );

System.out.println( "aaaaa".matches("a{5}") );

System.out.println( "aaaaaaaaa".matches("a{5,8}") );

System.out.println( "aaa".matches("a{5,}") );

System.out.println( "aaaaab".matches("a{5,}") );

范围表示

[abc]

a、b 或 c(简单类)

[^abc]

任何字符,除了 a、b 或 c(否定)

[a-zA-Z]

a 到 z 或 A 到 Z,两头的字母包括在内(范围)

[a-d[m-p]]

a 到 d 或 m 到 p:[a-dm-p](并集)

[a-z&&[def]]

d、e 或 f(交集)

[a-z&&[^bc]]

a 到 z,除了 b 和 c:[ad-z](减去)

[a-z&&[^m-p]]

a 到 z,而非 m 到 p:[a-lq-z](减去)

 

 

    System.out.println( "a".matches("[a]") );

    System.out.println( "aa".matches("[a]+") );

    System.out.println( "abc".matches("[abc]{3,}") );

    System.out.println( "abc".matches("[abc]+") );

    System.out.println( "dshfshfu1".matches("[^abc]+") );

    System.out.println( "abcdsaA".matches("[a-z]{5,}") );

    System.out.println( "abcdsaA12".matches("[a-zA-Z]{5,}") );

    System.out.println( "abcdsaA12".matches("[a-zA-Z0-9]{5,}") );

    System.out.println( "abdxyz".matches("[a-c[x-z]]+"));

    System.out.println( "bcbcbc".matches("[a-z&&[b-c]]{5,}"));

    System.out.println( "tretrt".matches("[a-z&&[^b-c]]{5,}"));

   

^

行的开头

$

行的结尾

\b

单词边界

\B

非单词边界

\A

输入的开头

\G

上一个匹配的结尾

\Z

输入的结尾,仅用于最后的结束符(如果有的话)

\z

输入的结尾

例子:String reg = "[1-9][0-9]{4,14}";

[1-9][0-9]{4,14}   [1-9]表示是第一位数字是会出现1-9范围之间的其中一个,下来的数字范围会出现在0-9之间,至少出现4次,最多出现14次。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值