2012-04-21 39 views
-2
import java.util.*; 

public class Programming { 

    public static void main(String[] args) { 
     //Scanner scan = new Scanner(System.in); 

     int l=0; 
     StringBuilder password = new StringBuilder(); 

     public static boolean matchCharAt(StringBuilder password, int l){ 
      l = password.length(); 
      if (l < 0 || l > 100){ 
       return false; 
      } 

      for (int i = 0; i < password.length();i++){ 
       if (!Character.isLetter(password.charAt(l))) 
        return false; 
      } 
      return true; 

     } 
    } 

它說我有一個錯誤{ for (l=0; l < 100; l++); },但我不知道如果那是哪裏的大括號錯誤是。這可能不是一個花括號錯誤,我不確定,但我希望我可以得到一些幫助,不會有這個錯誤。語法錯誤,插入}完成塊

+1

第8行將是.. – 2012-04-21 17:26:19

+3

您確定要複製並粘貼您的代碼嗎?您正在另一種方法中聲明一個方法。 – 2012-04-21 17:27:40

+2

這段代碼有很多問題。開始:你不能用另一種方法聲明一個方法。 – 2012-04-21 17:28:06

回答

8

你永遠不會關閉main()方法塊:

public static void main(String[] args) { 
    //Scanner scan = new Scanner(System.in); 

    int l=0; 
    StringBuilder password = new StringBuilder(); 

    { 
     for (l = 0; l < 100; l++); 
    } 
} //HERE! 

除了這個循環:

for (l = 0; l < 100; l++); 

沒有做任何事情,除了的l值更改爲100。此外,循環被一個沒有實際意義的塊包圍。我只能猜測這是你想要的:

for (l = 0; l < 100; l++) { 
    matchCharAt(password, l); 
    //... 
} 
0

我不確定你到底想要什麼。這應該至少編譯:

public class SomeClass { 

    public static void main(String[] args) { 
     //Scanner scan = new Scanner(System.in); 

     int l=0; 
     StringBuilder password = new StringBuilder(); 

     for (l = 0; l < 100; l++) { 
     ; // Does nothing... 
     } 
    } // end of "main()" 

    public static boolean matchCharAt(StringBuilder password, int l){ 
    l = password.length(); 
    if (l < 0 || l > 100){ 
     return false; 
    } 

    for (int i = 0; i < password.length();i++){ 
     if (!Character.isLetter(password.charAt(l))) 
      return false; 
    } 

    return true; 
    } // end of "matchCharAt()" 

} // end of class 
1

這是必然結果你的主要問題,但你也在這種方法

public static boolean matchCharAt(StringBuilder password, int l){ 
     l = password.length(); 
     if (l < 0 || l > 100){ 
      return false; 
     } 

如果你正在傳遞l改變一個參數,那麼你將與l = password.length()改變其價值。

+0

+1,很好!偏好'final'參數的論據。 – 2012-04-21 17:35:46

相關問題