作业

来源:互联网 发布:centos arp清理 编辑:程序博客网 时间:2024/05/17 09:29
package regix;
/*
 * 需求:校验QQ号码
(1)要求必须是5-15位数字
(2)0不能开头
(3)必须都是数字
(4)分别用非正则表达式实现、再用正则表达式实现
 */
public class a {
 public static void main(String[]args){
  checkQQ();
 }
 //正则表达式
 public static void checkQQ1(){
  String qq="";
  String regex="[1-9][0-9]{4,14}";
  boolean flag = qq.matches(regex);
  if(flag){
   System.out.println(qq+"true");
  }else{
   System.out.println(qq+"false");
  }
  
 }
 //非正则表达式
 public static void checkQQ(){
  String qq="2394239048230948";
  int len=qq.length();
  if(len>=5&&len<=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("不可以0开头");
   }
  }else{
   System.out.println("出现非法");
  }


 }
}







package regix;
public class TestGroup {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  //---------------叠词:快快乐乐,高高兴兴
  // \\1代表第一组又出现一次, \\2代表第二组又出现一次
//  String regex="(.)\\1(.)\\2";
//  System.out.println("快快乐乐".matches(regex));//true
//  System.out.println("快乐快乐".matches(regex));//false
//  System.out.println("高高兴兴".matches(regex));//true;
  //---------------叠词:快乐快乐,高兴高兴。
//  String regex="(..)\\1";
//  System.out.println("快乐快乐".matches(regex));//true
//  System.out.println("高兴高兴".matches(regex));//true
//  System.out.println("快快乐乐".matches(regex));//false
  //------------请按照叠词切割"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]);
//   
//  }
//  for (String string : arr) {
//   System.out.println(string);
//   
//  }
//  -----将字符串“我我....我...要.要...要要...要学....学学..学.编..编编.编.程.程.程..程"还原成我要学编程
  String s="我我....我...要.要...要要...要学....学学..学.编..编编.编.程.程.程..程";
  String s2=s.replaceAll("\\.", "");
  System.out.println(s2);
  String s3=s2.replaceAll("(.)\\1+", "$1");
  System.out.println(s3);
 }
}








package regix;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestPattern {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  //把一个字符串中的手机号码获取出来
  String s="我的手机号码是17688888888,曾用过1231433234,还用1235433234";
  String regex="1[3578]\\d{9}";
//  Pattern p=Pattern.compile(regex);
//  Matcher m=p.matcher(s);
//  boolean b=m.matches();
//  System.out.println(b);
  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());
  }
 }
}





package regix;
//正则表达式的替换功能
public class TestReplaceAll {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String s="Once111a2222wolf,3always4a5wolf!";
  String reges="\\d+";//\\d代表任意数字,+代表一次或多次
  String s2=s.replaceAll(reges, " ");
  System.out.println(s2);
 }
}








package regix;
/*  字符串排序
          需求:有字符串“91 27 46 38 50”,写代码实现最终输出结果“27 38 46 50 91”
 * 分析:
 * 1.将字符串切割成字符串数组
 * 2.将字符串转换成数字,并将其存储在一个等长度的int数组中
 * 3.排序
 * 4.将排序后的结果遍历并拼成一个字符串
 *
 */
import java.util.Arrays;
public class TestString {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  String s="91 27 46 38 50";
  //1.
  String[] strs=s.split(" ");
  //2.
  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]).append(" ");
   }
   
  }
  System.out.println(sb);
  
 }
 
}


原创粉丝点击