發問時間: 電腦與網際網路程式設計 · 9 年前

程式跑不出錯誤的結果 到底哪裡錯 java

下列程式是用來分析電子郵件信箱格式有無錯誤 正確會顯示correct 錯誤會顯示 Error 我執行後 能跑出correctㄉ結果 可是error的結果跑不出來 到底哪裡錯???

import java.io.Console;

public class fd

{

public static void main(String[] args)

{

int a,b,c,i,n;

Console bu=System.console();

System.out.println("請輸入信箱:");

String te = bu.readLine();

char[] dd=te.toCharArray();

for(i=0;i<dd.length&&dd[i]!='@';i++)

{

if(dd[i]=='@'&&i!=0)

a=1;

else if(dd[i]=='@'&&i==0)

System.out.print("Error");

else if(dd[i]!='@'&&i==dd.length)

System.out.print("Error");

}

if(dd[i]=='@'&&i!=0)

{

for(n=0;n<dd.length&&dd[n]!='.';n++)

{

if(dd[n]=='.'&&n!=dd.length)

b=1;

else if(dd[n]!='.'&&n==dd.length)

System.out.print("Error");

else if(dd[n]=='.'&&n==dd.length)

System.out.print("Error");

}

if(dd[n]=='.'&&n!=dd.length)

{

if(n-i>=2)

System.out.print("Correct");

else if(n-i<2)

System.out.print("Error");

}

}

}

}

2 個解答

評分
  • 9 年前
    最佳解答

    for(i=0;i<dd.length&&dd[i]!='@';i++)

    改 for(i=0;i<dd.length-1&&dd[i]!='@';i++)

    你的 i 不可能等於 length

    頂多只拜訪到 length-1

    參考資料: 自己
  • 9 年前

    分析mail正確與可使用正規表示式

    看下列網址的mail檢查

    http://lab.hsdn.net/blog/2009/09/%E5%B8%B8%E7%94%A...

    程式部份可以變的很簡潔

    .....//輸入mail字串程式省略

    String mailStr = ....;//取得輸入的mail字串

    if(mailStr.matches("正規表示式字串")) {

    //驗証正確訊息

    }

    else {

    //驗証錯誤訊息

    }

還有問題?馬上發問,尋求解答。