為什么我.在首位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運行成功,不懂為什么會這樣,求大佬解答
2020-07-08
prefix.equals("java")錯了,應該為prefix.equals(".java"),因為你的prefix字符串是".java"
2020-06-28
當我把代碼改成if (index!=-1&&index!=0&&prefix.equals("java") ) ,? ? ? ??String prefix =fileName.substring(index,fileName.length());這個不改動,結果卻變成
運行成功,輸出錯誤