第二次作业后续三道题

第一道题:
/**
*判断输入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]+"\t");
			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:代码虽然可以基本达到要求,但是尚不完善,太过琐碎,后续三天内会对代码进行优化
这次没注意有没有需要用到封装的地方,如果有要求,我会再改进

posted @ 2018-03-22 13:42  入梦落樱满熏香  阅读(151)  评论(0编辑  收藏  举报