Bootstrap

2018-12-14作业

2018-12-14作业

1、编写一个程序,实现从命令行参数输入两个字符串类型的数值,并计算输出两个数值的和。 [必做题]

   Scanner input=new Scanner(System.in);
   System.out.println("请输入:");
   String a=input.nextLine();
   System.out.println("请输入:");
   String b=input.nextLine();
   Integer a0=Integer.valueOf(a);
   Integer b0=Integer.valueOf(b);
   int sum=a0+b0;
   System.out.println(sum);
	}

2、编写一个程序,实现从命令行参数输入一字符串,统计该字符串中字符“e”出现的次数。(识点:String中常用的方法) [必做题]

  Scanner input=new Scanner(System.in);
  System.out.println("请输入:");
  String a=input.nextLine();
  int sum=0;
  for(int i=0;i<a.length();i++){
	 if(a.charAt(i)=='e'){
		 sum=sum+1;
	 } 
  }
  System.out.println(sum);
	}

2.解析一个邮箱地址是否合法,如果合法则打印出用户名部分和该邮箱所属的网站域名,如果邮箱地址不合法则显示不合法的原因

public static boolean testmail(){
	Scanner input=new Scanner(System.in);
	System.out.println("请输入邮箱地址:");
	String a=input.nextLine();
	if(true){
	int sum=0;
	for(int i=0;i<a.length();i++){
		if(a.charAt(i)=='@'){
		  sum=sum+1;
		  if(sum>1){
			  System.out.println("邮箱地址中包含多个@");
		  }
		  if(sum==0){
			  System.out.println("邮箱地址中不包含@");
		  }  }
		if(a.indexOf('@')>a.indexOf('.')){
			System.out.println("邮箱地址中.出现在@前面");
		}
		if(!(a.charAt(i)>='a'&&a.charAt(i)<='z'||
			a.charAt(i)>='A'&&a.charAt(i)<='Z'
			||a.charAt(i)>='0'&&a.charAt(i)<='9'
				||a.charAt(i)=='.'||a.charAt(i)=='@'))
			{System.out.println("邮箱中包含了其它字符");}
	}return false;}
	else{
		System.out.println("邮箱格式合法");
		return true;
	        }
		}

3、分别在控制台输入字符串和子字符串,并计算字符串中子字符串出现的次数。 [选做题]

		Scanner input=new Scanner(System.in);
		System.out.println("请输入字符串a:");
		String a=input.nextLine();
		System.out.println("请输入子字符串b:");
		String b=input.nextLine();
		int count=0;
		while (b.length() <=a.length()) {
			if (a.indexOf(b) != -1) {
				a = a.substring(a.indexOf(b) + b.length(), a.length());
				count++;
			} else {
				break;
			}
		}
		System.out.println("子字符串b在字符串a中出现了" + count + "次");
	}

4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 [选做题]

Scanner input=new Scanner(System.in);
     System.out.println("请输入字符串a:");
     String a=input.nextLine();
     int sum1=0;
     int sum2=0;
     int sum3=0;
     for(int i=0;i<a.length();i++){
     if(a.charAt(i)>='a'&&a.charAt(i)<='z'||
 			a.charAt(i)>='A'&&a.charAt(i)<='Z')
    		 {
    	 sum1++;
    		 }
 			if(a.charAt(i)>='0'&&a.charAt(i)<='9'){
 				sum2++;
 			}
 			 sum3=a.length()-sum1-sum2;
     }
     System.out.println("字符串a中英文字符的数目为:"+sum1+"数字的数目为:"+sum2+"中文字符的数目为:"+sum3);

5.有一种数叫回文数,正读和反读都一样,如12321便是一个回文数。编写一个程序,从命令行得到一个整数,判断该数是不是回文数。 [选做题]

Scanner input =new Scanner(System.in);
   System.out.println("请输入:");
   int a=input.nextInt();
   String b=new Integer(a).toString();
   if(b.equals(new StringBuffer(b).reverse().toString())) {
		System.out.println("a是回文数");
	}else {
		System.out.println("a不是回文数");
   }
	}
;