大神们能帮忙看看代码哪错了吗,运行不出来

来源:2-3 Java 中 String 类的常用方法 Ⅰ

慕斯卡7585644

2017-09-25 16:50

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,fileName.length());
        
        // 判断必须包含"."号,且不能出现在首位,同时后缀名为"java"
        if ( index!=-1&&index!=0&&prefix.equals(".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("邮箱格式无效");
        }
    }
}


写回答 关注

3回答

  • M__
    2017-09-25 20:35:49
    已采纳

    19行,你获取文件名位置从index+1开始,那么就是java没有“.”然而你22行又要判断是否与“.java”匹配

    然后你37行o应该要大写

    慕斯卡758...

    非常感谢!太厉害了。

    2017-09-26 20:50:08

    共 1 条回复 >

  • 容错率
    2017-09-26 15:39:26

    19行,index+1改成index

    还有16行,双引号改成单引号试试

  • Crocoa
    2017-09-25 16:56:43

    22行把”.“去掉。

    慕斯卡758...

    不是这个地方,这个位置没‘.’也运行有错的。

    2017-09-25 16:59:32

    共 1 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题