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