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次。