zoukankan      html  css  js  c++  java
  • 项目三——字符串操作

    1设计一个提供下面字符串操作的类

      1)编写一个方法,查找在一个字符串中指定字符串出现的次数。

      2)编写一个方法,参数(母字符串,目标字符串,替换字符串)将母字符串中的所有目标字符用替换字符串替换。

      3)编写一个方法,判断一个email地址是否合法。

    2.编写一个测试类,对1中的字符串类的方法逐一进行测试。

    package pro3;
    public class String01 {
    	public static void main(String[] args) {
    		StringOpe string01=new StringOpe("I love China! China China");
    		StringOpe string02=new StringOpe("616@6@qq.com");
    		StringOpe string03=new StringOpe("_6166@qq.com");
    		StringOpe string04=new StringOpe("6166.qq@com");
    		StringOpe string05=new StringOpe("6166@qq.com");
    		
    		System.out.println("China在I love China! China China中出现了"+string01.findTime("China")+"次");
    		System.out.println("I love China! China China  中China换成Hebau:  "+string01.repStr("China", "Hebau"));
    		System.out.println(string02.getter()+"这个邮箱"+string02.judge());
    		System.out.println(string03.getter()+"这个邮箱"+string03.judge());
    		System.out.println(string04.getter()+"这个邮箱"+string04.judge());
    		System.out.println(string05.getter()+"这个邮箱"+string05.judge());
    	}
    }
    class StringOpe{
    	private String string;
    	public StringOpe(String string){
    		this.string=string;
    	}
    	public String getter(){
    		return string;
    	}
    	public int findTime(String str){
    		int number=0;
    		int flag=0;
    		while((flag=string.indexOf(str, flag))!=-1){
    			flag=flag+str.length();
    			number++;
    		}
    		return number;
    	}
    	public String repStr(String str1,String str2){
    		return string.replace(str1, str2);
    	}
    	public String judge(){
    		boolean i=judgeEmail(string);
    		if(i==true){
    			return "邮箱地址合法";
    		}else if(i==false){
    			return "邮箱地址不合法";
    		}
    		return "";
    	}
    	private boolean judgeEmail(String string){
    		/* 
    		 * 1.地址中不包括@ 或 . 
    		 * 2.地址中包括多个 @ 或 . 
    		 * 3.邮箱地址中 . 出现 在@ 前面 
    		 * 4.首字符是数字和字母以外的
    		 * 5.用户名中出现其他字符 
    		 */  
    		if(string.indexOf("@")==-1||string.indexOf(".")==-1){
    			return false;
    		}
    		if(string.indexOf("@")!=string.lastIndexOf("@")||string.indexOf(".")!=string.lastIndexOf(".")){
    			return false;
    		}
    		if(string.indexOf(".")<string.indexOf("@")){
    			return false;
    		}
    		if(!((string.charAt(0)>='0'&&string.charAt(0)<='9')||(string.charAt(0)>='a'&&string.charAt(0)<='z')||(string.charAt(0)>='A'&&string.charAt(0)<='Z'))){
    			return false;
    		}
    		for(int i=1;i<string.indexOf("@");i++){
    			if(!((string.charAt(i)>='0'&&string.charAt(i)<='9')||(string.charAt(i)>='a'&&string.charAt(i)<='z')||(string.charAt(i)>='A'&&string.charAt(i)<='Z')||(string.charAt(i)=='_'))){
    				return false;
    			}
    		}
    		return true;
    	}
    }
    

      

  • 相关阅读:
    C# 依赖注入中的 控制反转(Assembly)实现
    C# 依赖注入中的 控制反转(Assembly)实现
    Asp.net web form 动态生成控件的注意事项
    jackson的转换object转map
    SpringCloud+Feign+Hystrix使用FallbackFactory统一处理,查看服务调用异常或失败,进入熔断降级处理的原因
    feign调用返回object类型转换成实体
    Springboot @ResponseBody返回中文乱码
    Feign 传参问题及传输Date类型参数的时差 坑
    Mybatis plus条件构造器QueryWrapper的简单用法
    Java命令里面的EQ、NE、GT、LT、GE、LE分别代表含义
  • 原文地址:https://www.cnblogs.com/hxtblogs/p/7649532.html
Copyright © 2011-2022 走看看