为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我.在首位java还能运行成功?

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,fileName.length());

        

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

if ( index!=0                           ) {

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

} else {

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

}


因为我知道.在首位程序应该会返回index=0,于是我把获取文件的后缀改成String prefix =fileName.substring(index,fileName.length());

获取的就是.在首位,接着判断index!=0则输出java运行成功,否则失败,按道理应该输出失败才对,可结果居然输出java运行成功,不懂为什么会这样,求大佬解答


正在回答

2 回答

prefix.equals("java")错了,应该为prefix.equals(".java"),因为你的prefix字符串是".java"

0 回复 有任何疑惑可以回复我~

当我把代码改成if (index!=-1&&index!=0&&prefix.equals("java") ) ,        String prefix =fileName.substring(index,fileName.length());这个不改动,结果却变成

运行成功,输出错误

Java文件名无效
邮箱格式正确


0 回复 有任何疑惑可以回复我~
#1

weixin_慕婉清7222021

String prefix =fileName.substring(index+1);这个也行
2020-08-21 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我.在首位java还能运行成功?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信