正则表达式(习题)
来源:互联网 发布:国牌lolita淘宝店铺 编辑:程序博客网 时间:2024/06/05 01:08
一、
/*
* 需求:校验QQ号码*(1)要求必须是5-15位数字
*(2)0不能开头
*(3)必须都是数字
*(4)分别用非正则表达式实现、再用正则表达式实现
*/
public class Test_regex {
public static void main(String[] args) {
String QQ = "1333333";
if( ! (QQ.length()< 5 || QQ.length() >15)){
if(! QQ.startsWith("0")){
char[] arr= QQ.toCharArray();
boolean flag = true;
for(int i =0;i< arr.length;i++){
if( arr[i]<'0' || arr[i] >'9'){
flag =false;
break;
}
}
if(flag)
System.out.println("QQ号:"+QQ);
else
System.out.println("非法QQ号!");
}
else{
System.out.println("QQ号不能以0开头!");
}
}
else {
System.out.println("QQ号超度不符合要求!");
}
//正则表达式
String qq = "123456789012";
String g = "[1-9]\\d{5,11}";
boolean matches = qq.matches(g);
System.out.println(matches);
}
}
二、
/*
* 需求:有字符串“91 27 46 38 50”,写代码实现最终输出结果“27 38 46 50 91”
*/
/*
* 分析:
* 1.将字符串切割成字符串数组
* 2.将字符串转换成数字,并将其存储在一个等长度的int数组中
* 3.排序
* 4.将排序后的数组遍历并拼成一个字符串
*/
public class Test_String {
public static void main(String[] args) {
String s = "91 27 46 38 50";
//1.将字符串切割成字符串数组
String[] strs = s.split(" ");
//2.将字符串转换成数字,并将其存储在一个等长度的int数组中
int[] arr = new int[strs.length];
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(strs[i]);
}
//3.排序
Arrays.sort(arr);
//4.将排序后的数组遍历并拼成一字符串
//第一种
// String str = "";
// for (int i = 0; i < arr.length; i++) {
// if(i == arr.length -1){
// str += arr[i];
// }else{
// str += arr[i] + " ";
// }
// }
// System.out.println(str);
//第二种(节省空间)
StringBuilder sb = new StringBuilder();
for (int i = 0; i < arr.length; i++) {
if(i == arr.length -1){
sb.append(arr[i]);
}else{
// sb.append(arr[i] + " ");
sb.append(arr[i]).append(" ");
}
}
System.out.println(sb);
}
}
三、
/*
* 习题:
* 需求:请按照叠词切割“sdqqfgkkkhjppppkl”
*/
String s = "sdqqfgkkkhjppppkl";
String regex = "(.)\\1+";// +代表第一组出现一次到多次
String[] arr = s.split(regex);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
四、
//习题:
//需求:将字符串“我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程”
//还原成“我要学编程”
String s = "我我....我...我.要...要要...要学....学学..学.编..编编.编.程.程.程..程";
String s2 = s.replaceAll("\\.", "");//把所有的.替换
System.out.println(s2);
//$1表示获取到一组的数据,然后替换掉整租的字符串
String s3 = s2.replaceAll("(.)\\1+", "$1");
System.out.println(s3);
五、
/*
* 习题:
* 字符串获取
* 需求:把一个字符串中的手机号码获取出来
*/
String s = "我的手机号码是13948522128,曾经用过15210964620,还用过15848805048";
String regex = "1[3578]\\d{9}";//手机号码的正则表达式
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(s);
// boolean b = m.find();
//// System.out.println(b);
// String s1 = m.group();
// System.out.println(s1);
while(m.find()){
System.out.println(m.group());
}
- 正则表达式习题
- 习题,正则表达式
- 正则表达式(习题)
- bash 正则表达式习题
- scala习题九——文件和正则表达式
- 【正则表达式】正则表达式
- 快学Scala习题解答—第九章 文件和正则表达式
- 快学Scala习题解答—第九章 文件和正则表达式
- Scala 文件和正则表达式 快学Scala 第九章习题答案
- 快学scala 第九章 文件和正则表达式 读书笔记及习题答案代码
- linux初学<第二章习题一>用命令和正则表达式按照要求建立文件!
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- 正则表达式
- javascript回调函数
- 文件系统读写--文件写过程代码分析
- 数据结构第七周项目1--建立顺序环形队列算法库
- 懒人读算法(四)-寻找最大连续值
- Ubuntu 16.04 安装 PyCharm-Python IDE
- 正则表达式(习题)
- 线形对象与平面相交
- 第四周 循环双链表应用
- 插入排序
- Linux ALSA声卡驱动之三:PCM设备的创建
- sql问题总结
- android常用框架集合
- 并行计算学习计划
- Fields in a "Serializable" class should either be transient or serializable序列化