一道笔试题

    添加时间: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 forint 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 forint 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 forint 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]格局是否正确:正确


    我俩之间有着强烈的吸引力。短短几个小时后,我俩已经明白:我们的心是一个整体的两半,我俩的心灵是孪生兄妹,是知己。她让我感到更有活力,更完美,更幸福。即使她不在我身边,我依然还是感到幸福,因为她总是以这样或者那样的方式出现在我心头。——恩里克·巴里奥斯《爱的文明》
    分享到: