• 第二次作业后续三道题


    第一道题:
    /**
    *判断输入email的格式是否正确
    /
    import java.util.
    ;
    class Person{
    private String adress;
    public Person(){

    }
    private Person(String adress){
    	this.setAdress(adress);
    }
    public void setAdress(String adr){		//设置email地址
    	adress=adr;
    }
    public String getAdress(){		//获取email地址
    	
    	
    	return adress;
    }
    

    }
    public class Demo {
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner input=new Scanner(System.in);
    System.out.println("请输入email地址");
    String adr=new String();
    Person ad=new Person();
    adr=input.next();
    int a=adr.indexOf("@");
    int b=adr.indexOf(".");
    int flag=0;
    if((a!=-1)&&(b!=-1)){
    System.out.println("'@'字符在第"+(a+1)+"个位置");
    System.out.println("'.'字符在第"+(b+1)+"个位置");
    if(a<b){
    if(adr.startsWith("@")){
    System.out.println("格式错误");
    }
    else{
    if(adr.endsWith("com")||adr.endsWith("cn")||adr.endsWith("net")||adr.endsWith("gov")||adr.endsWith("edu")||adr.equals("org")){
    flag=1;
    System.out.println(adr);
    }
    }
    }
    else{
    System.out.println("格式错误");
    }

    	}
    	else{
    		System.out.println("格式错误");
    	}
    	if(flag==1){
    		System.out.println("格式正确:"+adr);
    	}
    	
    }
    

    }


    书P125
    使用indexOf()方法返回下标比较@与.的位置先后
    书P127
    使用endsWith()方法判断字符串以什么格式结尾

    第二道题
    package 一本的作业;
    /**
    *在已输入的字符串中查找字符
    /
    import java.util.
    ;
    class Person{
    private String number;
    public Person(){

    }
    public Person(String number){
    	this.setNumber(number);
    }
    public String getNumber(){		//获取字符串
    	return number;
    }
    public void setNumber(String number){		//设置字符串
    	this.number=number;
    }
    

    }
    public class Demo2 {

    public static void main(String[] args) {
    	// TODO Auto-generated method stub
    	Scanner input=new Scanner(System.in);
    	String num=new String();
    	System.out.println("请输入字符串:");
    	num=input.next();
    	System.out.println("输入的字符串为:"+num);
    	String abc=new String();
    	System.out.println("请输入要查找的字符串:");
    	abc=input.next();
    	int fromIndex=1;
    	if(num.indexOf(abc)!=-1){
    		System.out.println("以上字符保含以下字符:"+abc);
    	}
    	else{
    		System.out.println(num+"该字符中未找到您所需要的字符");
    	}
    		
    }
    

    }


    P125
    判断一个字符串是否包含另一个字符串
    我原意是是用for进行查找字符串,但是方法是boolean类型,所以用if不能用for;

    第三道题
    /**
    *输入n个文件名巴拉巴拉巴拉
    /
    package 一本的作业;
    import java.util.
    ;
    class Person{
    private String number;
    public Person(){

    }
    public Person(String number){
    	
    }
    public void setNumber(String number){		//设置字符串
    	this.setNumber(number);
    }
    public String getNumber(){		//获取字符串
    	return number;
    }
    public String toString(){
    	return "字符串为"+this.getNumber();
    }
    

    }
    public class Demo3 {

    public static void main(String[] args) {
    	// TODO Auto-generated method stub
    	Scanner input=new Scanner(System.in);
    	String num=new String();
    	System.out.println("输入一个包含各类文件类型的字符串");
    	num=input.next();
    	System.out.println("输出用户输入的字符串"+num);
    	int count=0;
    	int txt=0;
    	int avi=0;
    	int mp4=0;
    	int mp3=0;
    	int java=0;
    	do{
    		int a=num.indexOf(",");
    		System.out.println("','的下标为"+a);		//寻找‘,’的下标
    		String str=num.substring(a+1);
    		System.out.println("剩余的内容为"+str);
    		if(str.indexOf(",")==-1){		//判断是否为最后一个文件名
    			String strr1=new String();
    			String strr2=new String();
    			String strr3=new String();
    			String summ=new String();
    			strr1=str.substring(0,1);		//提取截取内容的第一位
    			strr2=strr1.toUpperCase();		//令其大写
    			strr3=str.substring(1,a);        //提取除第一位其余的部分
    			summ=strr2+strr3;		//两个字符串合并
    			System.out.println(summ);
    			if(summ.endsWith("txt")){
    				txt++;
    			}
    			else if(summ.endsWith("avi")){
    				avi++;
    			}
    			else if(summ.endsWith("mp4")){
    				mp4++;
    			}
    			else if(summ.endsWith("mp3")){
    				mp3++;
    			}
    			else if(summ.endsWith("java")){
    				java++;
    			}
    		}
    		String sss=num.substring(0,a);		//截取去掉的文件的内容
    		System.out.println("第"+(count+1)+"次截取掉的内容为:"+sss);
    		
    		if(sss.endsWith("txt")){
    			txt++;
    			
    		}
    		else if(sss.endsWith("avi")){
    			avi++;
    		}
    		else if(sss.endsWith("mp4")){
    			mp4++;
    		}
    		else if(sss.endsWith("mp3")){
    			mp3++;
    		}
    		else if(sss.endsWith("java")){
    			java++;
    		}
    		num=str;
    		count=txt+avi+mp4+mp3+java;
    		String str1=new String();
    		String str2=new String();
    		String str3=new String();
    		String sum=new String();
    		str1=sss.substring(0,1);		//提取截取内容的第一位
    		System.out.println(str1);
    		str2=str1.toUpperCase();		//令其大写
    		str3=sss.substring(1,a);        //提取除第一位其余的部分
    		sum=str2+str3;		//两个字符串合并
    		System.out.println("大写化"+sum);
    		//char c[]=sss.toCharArray();
    		//String n=new String();
    		/*for(int j=0;j<c.length;j++){
    			System.out.print(c[j]+"	");
    			if(j==0){
    				n=sss.toUpperCase();
    			}
    		}*/
    	//	System.out.println(n);
    	
    	}while(num.indexOf(",")!=-1);
    	System.out.println("txt文件类型累计"+txt+"个");
    	System.out.println("avi文件类型累计"+avi+"个");
    	System.out.println("mp4文件类型累计"+mp4+"个");
    	System.out.println("mp3文件类型累计"+mp3+"个");
    	System.out.println("java文件类型累计"+java+"个");
    	System.out.println("可判断有"+count+"个文件");
    }
    

    }
    // 尝试拆分字符串使其变为二维数组,让第一位大写,达到目的

    这道题有点难度,找让第n位大写的方法找不到,用do-while做的时候多出的最后一个文件也让我很头疼
    于是只能用笨方法进行两度截取,得到最大值,字符串相加就可以合并也比较简单
    代码需要的方法全部在书上的125页到127页之间,只要多看看书,题就会做了

    PS:代码虽然可以基本达到要求,但是尚不完善,太过琐碎,后续三天内会对代码进行优化
    这次没注意有没有需要用到封装的地方,如果有要求,我会再改进

  • 相关阅读:
    指针总结与地址
    寻址方式
    为什么要有指针?
    指针与变量
    Wired Memory
    Memory Usage Performance Guidelines
    内存管理与运行时
    Java jvm 内存回收机制
    GC详解及Minor GC和Full GC触发条件总结
    Java的内存回收机制详解X
  • 原文地址:https://www.cnblogs.com/yeqingsong/p/8623158.html
Copyright © 2020-2023  润新知