2012-04-21 91 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

相关问题