问答详情
源自:2-3 Java 中 String 类的常用方法 Ⅰ

题目中答案千万种,为何我的错了

public class HelloWorld {
    public static void main(String[] args) {
        // Java文件名
  String fileName = "HelloWorld.java";
        // 邮箱
  String email = "laurenyang@imooc.com";
  
  // 判断.java文件名是否正确:合法的文件名应该以.java结尾
        /*
        参考步骤:
        1、获取文件名中最后一次出现"."号的位置
        2、根据"."号的位置,获取文件的后缀
        3、判断"."号位置及文件后缀名
        */
        //获取文件名中最后一次出现"."号的位置
  int index = fileName.lastIndexOf(".");
       
        // 获取文件的后缀
  String prefix =fileName.substring(index+1);
       
  // 判断必须包含"."号,且不能出现在首位,同时后缀名为"java"
  if (fileName.contains(".")&&index!=0&& fileName.endWith("java")  ) {
   System.out.println("Java文件名正确");
  } else {
   System.out.println("Java文件名无效");
  }

        // 判断邮箱格式是否正确:合法的邮箱名中至少要包含"@", 并且"@"是在"."之前
         /*
        参考步骤:
        1、获取文件名中"@"符号的位置
        2、获取邮箱中"."号的位置
        3、判断必须包含"@"符号,且"@"必须在"."之前
        */
     // 获取邮箱中"@"符号的位置
  int index2 = email.charAt("@");
       
        // 获取邮箱中"."号的位置
  int index3 = email.indexOf('.');
       
  // 判断必须包含"@"符号,且"@"必须在"."之前
  if (index2 != -1 && index3 > index2) {
   System.out.println("邮箱格式正确");
  } else {
   System.out.println("邮箱格式无效");
  }
 }
}


提问者:慕雪血影 2018-10-02 21:24

个回答

  • 糊虎
    2018-11-08 15:02:23

    你猜哪里错了o(* ̄︶ ̄*)o

    int index = fileName.indexOf(".")

     String[] arr=fileName.split(".");

    String prefix =arr[1];     

    // 判断必须包含"."号,且不能出现在首位,同时后缀名为"java"

    if (index>0 &&prefix.equals("java")        ) {

    System.out.println("Java文件名正确");

    } else {

    System.out.println("Java文件名无效");

    }


  • 慕雪血影
    2018-10-02 21:31:17

    我自己解决了,找了半天,主要是方法用错了。

    public class HelloWorld {
        public static void main(String[] args) {
            // Java文件名
      String fileName = "HelloWorld.java";
            // 邮箱
      String email = "laurenyang@imooc.com";
      
      // 判断.java文件名是否正确:合法的文件名应该以.java结尾
            /*
            参考步骤:
            1、获取文件名中最后一次出现"."号的位置
            2、根据"."号的位置,获取文件的后缀
            3、判断"."号位置及文件后缀名
            */
            //获取文件名中最后一次出现"."号的位置
      int index = fileName.lastIndexOf(".");
           
            // 获取文件的后缀
      String prefix =fileName.substring(index+1);
           
      // 判断必须包含"."号,且不能出现在首位,同时后缀名为"java"
      if (fileName.contains(".")&&index!=0&& fileName.endsWith("java")  ) {
       System.out.println("Java文件名正确");
      } else {
       System.out.println("Java文件名无效");
      }

            // 判断邮箱格式是否正确:合法的邮箱名中至少要包含"@", 并且"@"是在"."之前
             /*
            参考步骤:
            1、获取文件名中"@"符号的位置
            2、获取邮箱中"."号的位置
            3、判断必须包含"@"符号,且"@"必须在"."之前
            */
         // 获取邮箱中"@"符号的位置
      int index2 = email.indexOf("@");
           
            // 获取邮箱中"."号的位置
      int index3 = email.indexOf('.');
           
      // 判断必须包含"@"符号,且"@"必须在"."之前
      if (index2 != -1 && index3 > index2) {
       System.out.println("邮箱格式正确");
      } else {
       System.out.println("邮箱格式无效");
      }
     }
    }