标签:String Javaheima06 System Scanner println public out
Java
正则表达式
概述
可以用一些规定的字符来制定规则,并用校验数据格式的合法性
String类的哪个方法可以与正则表达式进行匹配
public boolean matches(String regex);
//判断是否匹配正则表达式,匹配返回true,不匹配返回false
帮助文档搜索Pattern
校验 手机号 邮箱 电话号码(座机带区号)
package com.yu.SingleInstance;
import java.util.Scanner;
public class checkTest {
public static void main(String[] args) {
// checkIphone();
// checkEmail();
checkTel();
}
public static void checkTel(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入要验证的电话号码☎:");
while (true) {
if(sc.next().matches("0\\d{2,6}-?\\d{2,9}")){
System.out.println("电话号码☎格式正确!");
break;
}else{
System.out.println("电话号码☎格式有误!");
System.out.println("请输入正确的的要验证的电话号码☎:");
}
}
}
public static void checkEmail(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入要验证的电子邮箱:");
while (true) {
if(sc.next().matches("[a-zA-Z0-9]{1,30}@[a-zA-Z0-9]{1,3}(\\.[a-zA-Z0-9]{1,3}){1,2}")){
System.out.println("电子邮箱格式正确!");
break;
}else{
System.out.println("电子邮箱格式有误!");
System.out.println("请输入正确的的要验证的电子邮箱:");
}
}
}
public static void checkIphone(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入要验证的手机号:");
while (true) {
if(sc.next().matches("1[3-9]\\d{9}")){
System.out.println("手机号格式正确!");
break;
}else{
System.out.println("手机号格式有误!");
System.out.println("请输入正确的的要验证的手机号:");
}
}
}
}
判断输入的金额
package com.yu.SingleInstance;
import java.util.Scanner;
public class moneyTest {
public static void main(String[] args) {
checkMoney();
}
public static void checkMoney(){
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入金额:");
String s = scanner.next();
if(s.matches("\\d{1,20}(\\.)?\\d{1,2}")){
System.out.println("你输入的金额为:"+s);
break;
}else {
System.out.println("输入格式有误!"+s);
}
}
}
}
正则表达式在字符串方法的使用
方法名 | 说明 |
---|---|
public String replaceAll(String regex,String newStr) | 按照正则表达式匹配的内容进行替换 |
public String[] split(String regex) | 按照正则表达式匹配的内容进行分割字符串,返回一个字符串数组 |
选择排序
select sort
每轮选择当前位置,开始找出后面的较小值与该位置进行交换
package com.yu.SingleInstance;
import java.util.Arrays;
public class SelectSortTest {
public static void main(String[] args) {
int[] sort = {5,1,3,2};
for (int i = 0; i <sort.length-1 ; i++) {
for (int j = i+1; j <sort.length ; j++) {
if(sort[i]>sort[j]){
int a =sort[i];
sort[i]=sort[j];
sort[j]=a;
}
}
}
System.out.println(Arrays.toString(sort));
}
}
二分查找
- 前提 : 必须排好序
- 性能好
package com.yu.SingleInstance;
public class binarySearchTest {
public static void main(String[] args) {
int [] arr = {1,10,33, 44,66,99,101,200};
binarySearch(arr,200);
}
public static int binarySearch(int[] arr,int data){
int left = 0 ;
int right = arr.length-1;
while (left<=right){
int a = (left+right)/2;
if(arr[a]<data){
left = a + 1;
}else if(arr[a]>data){
right = a - 1;
}else{
System.out.println("查询到了你要找的数字,它在数组的"+(a+1)+"位置.");
return a;
}
}
System.out.println("当前数组中没有你需要的值");
return -1;
}
}
实现步骤
-
定义变量记录左右两边位置
-
使用while循环控制查询(条件是左边位置<=右边位置)
-
循环内获取中间元素索引
-
判断当前要找的元素如果大于中间元素,左边位置=中间位置+1
-
判断当前要找的元素如果小于中间元素,右边位置=中间位置-1
-
判断当前要找的元素如果等于中间元素,返回当前中间元素索引
Lambda表达式
-
Lambda 表达式是JDK 8 开始的一种新语法形式
-
作用 :简化匿名内部类的代码写法
-
Lambda表达式的简化格式
-
(匿名内部类被重写方法的形参列表)->{ 被重写方法的方法体代码. } 注 :->是语法形式,无实际含义
-
注意: Lambda表达式只能简化函数式接口的匿名内部类的写法形式
说明是函数式接口
- 首先必须是接口,其次接口中有且仅有一个抽象方法的形式
- 通常我们会在接口上加一个@Functionlinterface注解,标记该接口必须是满足函数式接口
Lambda表达式的省略写法
- 参数类型可以省略不写,
- 如果只有一个参数,参数类型可以省略,同时()也可以省略
- 如果Lambda表达式的方法体代码只有一行代码,可以省略大括号不写,同时要省略分号!
- 如果Lambda 表达式的方法体代码只有一行代码,可以省略大括号不写.此时, 如果这行代码是return语句,必须省略return不写,同时也必须生路";"不写
集合
概述
- 集合和数组都是容器
数组
数组的特点
- 数组定义完成并启动后,类型确定,长度固定.
- 在进行增删数据操作是,数组是不太合适的,增删数据都需要放弃原有数组或移位.
数组使用场景
- 当业务数据的个数固定,且都是同一批数据类型的时候,可以采取数组存储
集合
集合Java中存储对象数据的一种容器
特点
- 集合的大小不固定,启动后可以动态变化,类型也可以选择不固定,集合更像气球
- 集合非常适合做约束的增删操作
注意: 集合中只能存储引用类型数据,如果要存储基本类型数据可以选用包装类
体系结构
- 集合
- Collection 单列
- Collection单列集合,每个元素(数据)只包含一个值
- Map 双列
- Map双列集合,每个元素包含两个值(键值对)
- Collection 单列
注意:前期先掌握Collection集合体系的使用
标签:String,Javaheima06,System,Scanner,println,public,out 来源: https://www.cnblogs.com/yuxxiao/p/16274263.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。