一道笔试题
添加时间:2013-6-6 点击量:
今天去口试了一家外资公司,碰到一道笔试题
题目可能内容如下:
题目:断定邮箱地址是否为正确格局,如:aaa@foxmail.com;ABcd@sina.com.cn;
邮箱中除了@和.,其余字符全为字母。不要应用正则表达式,写出思路或画出流程图
下面是我收拾出来的代码:
1 package com.b510.util;
2
3 /
4 断定邮箱地址是否为正确格局,如:aaa@foxmail.com;ABcd@sina.com.cn;
5 邮箱中除了@和.,其余字符全为字母。
6 @author hongten
7 @date 3013-06-05
8
9 /
10 public class CheckEmail {
11
12 public static void main(String[] args) {
13 String email = hongten@foxmail.com;
14 boolean isEmail = checkEmail(email);
15 String result = isEmail ? 正确 : 不正确;
16 System.out.println(邮箱 [ + email + ]格局是否正确:+ result);
17
18 }
19
20 /
21 断定邮箱地址是否为正确格局,如:aaa@foxmail.com;ABcd@sina.com.cn;
22 邮箱中除了@和.,其余字符全为字母。
23 @param email
24 @return
25 /
26 public static boolean checkEmail(String email) {
27 boolean indexFlag = false;
28 boolean lastFlag = false;
29 String[] strs = email.split(@);
30 if (strs.length > 0 && strs.length <= 2) {
31 String index = strs[0];
32 String last = strs[1];
33 indexFlag = isAllChars(index);
34 String[] lastArray = last.split(\\.);
35 for (int j = 0; j < lastArray.length; j++) {
36 if (lastArray[j] == null || lastArray[j].equals()) {
37 // 申明有.foxmail...com.这种景象
38 lastFlag = false;
39 break;
40 } else {
41 lastFlag = isAllChars(lastArray[j]);
42 if(!lastFlag){
43 break;
44 }
45 }
46 }
47 return (indexFlag && lastFlag);
48 } else {
49 return false;
50 }
51 }
52
53 /
54 断定一个字符串是否全为字母,此办法中,不管str中包含是否包含非字母字符,都邑把str全部遍历
55
56 @param str
57 所需断定的字符串
58 @return
59 /
60 public static boolean isAllChar(String str) {
61 if (str == null || str.equals()) {
62 return false;
63 }
64 int j = 0;
65 for (int i = 0; i < str.length(); i++) {
66 if ((str.charAt(i) >= a && str.charAt(i) <= z)
67 || (str.charAt(i) >= A && str.charAt(i) <= Z)) {
68 j = j + 1;
69 }
70 }
71 return (j == str.length());
72 }
73
74 /
75 断定一个字符串是否全为字母,此办法比上方的isAllChar办法效力要高,然则须要的是str中包含非字母字符在靠前面
76 如:a2bcd,对于这个字符串,到字符2的时辰就会终止断定
77
78 @param str
79 所需断定的字符串
80 @return
81 /
82 public static boolean isAllChars(String str) {
83 if (str == null || str.equals()) {
84 return false;
85 }
86 boolean flag = true;
87 for (int i = 0; i < str.length(); i++) {
88 if ((str.charAt(i) < a|| str.charAt(i) > z) && (str.charAt(i) < A || str.charAt(i) > Z)) {
89 flag = false;
90 break;
91 }
92 }
93 return flag;
94 }
95 }
运行成果:
邮箱 [hongten@foxmail.com]格局是否正确:正确
邮箱 [hongten@foxmail..com.]格局是否正确:不正确
邮箱 [h2ongten@foxmail.com]格局是否正确:不正确
邮箱 [hongten@foxma2il.com]格局是否正确:不正确
邮箱 [@foxmail.com]格局是否正确:不正确
邮箱 [hon.gten@foxmail.com]格局是否正确:不正确
邮箱 [hongten@foxmail.com.cn]格局是否正确:正确
我俩之间有着强烈的吸引力。短短几个小时后,我俩已经明白:我们的心是一个整体的两半,我俩的心灵是孪生兄妹,是知己。她让我感到更有活力,更完美,更幸福。即使她不在我身边,我依然还是感到幸福,因为她总是以这样或者那样的方式出现在我心头。——恩里克·巴里奥斯《爱的文明》
今天去口试了一家外资公司,碰到一道笔试题
题目可能内容如下:
题目:断定邮箱地址是否为正确格局,如:aaa@foxmail.com;ABcd@sina.com.cn;
邮箱中除了@和.,其余字符全为字母。不要应用正则表达式,写出思路或画出流程图
下面是我收拾出来的代码:
1 package com.b510.util;
2
3 /
4 断定邮箱地址是否为正确格局,如:aaa@foxmail.com;ABcd@sina.com.cn;
5 邮箱中除了@和.,其余字符全为字母。
6 @author hongten
7 @date 3013-06-05
8
9 /
10 public class CheckEmail {
11
12 public static void main(String[] args) {
13 String email = hongten@foxmail.com;
14 boolean isEmail = checkEmail(email);
15 String result = isEmail ? 正确 : 不正确;
16 System.out.println(邮箱 [ + email + ]格局是否正确:+ result);
17
18 }
19
20 /
21 断定邮箱地址是否为正确格局,如:aaa@foxmail.com;ABcd@sina.com.cn;
22 邮箱中除了@和.,其余字符全为字母。
23 @param email
24 @return
25 /
26 public static boolean checkEmail(String email) {
27 boolean indexFlag = false;
28 boolean lastFlag = false;
29 String[] strs = email.split(@);
30 if (strs.length > 0 && strs.length <= 2) {
31 String index = strs[0];
32 String last = strs[1];
33 indexFlag = isAllChars(index);
34 String[] lastArray = last.split(\\.);
35 for (int j = 0; j < lastArray.length; j++) {
36 if (lastArray[j] == null || lastArray[j].equals()) {
37 // 申明有.foxmail...com.这种景象
38 lastFlag = false;
39 break;
40 } else {
41 lastFlag = isAllChars(lastArray[j]);
42 if(!lastFlag){
43 break;
44 }
45 }
46 }
47 return (indexFlag && lastFlag);
48 } else {
49 return false;
50 }
51 }
52
53 /
54 断定一个字符串是否全为字母,此办法中,不管str中包含是否包含非字母字符,都邑把str全部遍历
55
56 @param str
57 所需断定的字符串
58 @return
59 /
60 public static boolean isAllChar(String str) {
61 if (str == null || str.equals()) {
62 return false;
63 }
64 int j = 0;
65 for (int i = 0; i < str.length(); i++) {
66 if ((str.charAt(i) >= a && str.charAt(i) <= z)
67 || (str.charAt(i) >= A && str.charAt(i) <= Z)) {
68 j = j + 1;
69 }
70 }
71 return (j == str.length());
72 }
73
74 /
75 断定一个字符串是否全为字母,此办法比上方的isAllChar办法效力要高,然则须要的是str中包含非字母字符在靠前面
76 如:a2bcd,对于这个字符串,到字符2的时辰就会终止断定
77
78 @param str
79 所需断定的字符串
80 @return
81 /
82 public static boolean isAllChars(String str) {
83 if (str == null || str.equals()) {
84 return false;
85 }
86 boolean flag = true;
87 for (int i = 0; i < str.length(); i++) {
88 if ((str.charAt(i) < a|| str.charAt(i) > z) && (str.charAt(i) < A || str.charAt(i) > Z)) {
89 flag = false;
90 break;
91 }
92 }
93 return flag;
94 }
95 }
运行成果:
邮箱 [hongten@foxmail.com]格局是否正确:正确
邮箱 [hongten@foxmail..com.]格局是否正确:不正确
邮箱 [h2ongten@foxmail.com]格局是否正确:不正确
邮箱 [hongten@foxma2il.com]格局是否正确:不正确
邮箱 [@foxmail.com]格局是否正确:不正确
邮箱 [hon.gten@foxmail.com]格局是否正确:不正确
邮箱 [hongten@foxmail.com.cn]格局是否正确:正确
我俩之间有着强烈的吸引力。短短几个小时后,我俩已经明白:我们的心是一个整体的两半,我俩的心灵是孪生兄妹,是知己。她让我感到更有活力,更完美,更幸福。即使她不在我身边,我依然还是感到幸福,因为她总是以这样或者那样的方式出现在我心头。——恩里克·巴里奥斯《爱的文明》