2018-12-15课后习题(老师答案)

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

package javademo11;

import java.util.Scanner;

public class Test1 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		String s = input.next();
		
		int sum = 0;
		char c ;
		for(int i = 0;i < s.length();i++) {
			c = s.charAt(i);
			
			if(c == 'e') {
				sum++;
			}
		}
		System.out.println(sum);
	}

}

2.生成十个0~100之间的随机数,放到数组中,然后排序输出。(知识点:Math类取整,获得随机数等)

package javademo11;
import java.util.Arrays;
import java.util.Random;
public class Test2 {
	public static void main(String[] args) {
		Random r = new Random();
		int[] arr = new int[10];
		for(int i = 0;i < 10;i++) {
			arr[i] = r.nextInt(100);
		}	
		Arrays.sort(arr);
		System.out.println(Arrays.toString(arr));
	}

}

3.解析一个邮箱地址是否合法,如果合法则打印出用户名部分和该邮箱所属的网站域名,如果邮箱地址不合法则显示不合法的原因 [选做题]
2.1 提示:邮箱地址不合法的因素:
2.1.1邮箱地址中不包含@或.
2.1.2邮箱地址中含有多了@或.
2.1.3邮箱地址中.出现在@的前面
2.1.4用户名里有其他字符

package javademo11;

public class Test3 {

	public static void main(String[] args) {
		String email = "[email protected]";
		boolean b = testMail(email);
		System.out.println(b);
	}
	public static boolean testMail(String email) {
		if(email.indexOf('@') == -1 || email.indexOf('.') == -1) {
			System.out.println("邮箱输入错误,必须包含@和.");
			return false;
		}
		if(email.indexOf('@') != email.lastIndexOf('@') || email.indexOf('.') != email.lastIndexOf('.')) {
			System.out.println("邮箱输入错误,必须包含了多个@和.");
			return false;
		}
			
		if(email.indexOf('@') > email.indexOf('.')) {
			System.out.println("邮箱输入错误,.出现在@的前面");
			return false;
		}
		char c ;
		for(int i = 0;i< email.length();i++) {
			c = email.charAt(i);
			
			if(!(c >= '0' && c <= '9' || c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z' || c == '@' || c == '.')) {
				System.out.println("邮箱输入错误,包含非法字符");
				return false;
			}
		}
		return true;
	}

}

你可能感兴趣的:(java习题)