2011-12-22 83 views
-4

初学者Java中,无法找到符号:奇怪

import java.util.Scanner; 
public class T69 { 

    static String S = new String(); 

    public static int makeInt(){ 
    int n=0; 
    int tein=1; 
    int i=S.lenght()-1; 
    while(i>0){ 
     n+=tein*(int)S.charAt(i); 
     tein*=10; 
     i--; 
    } 
    return n; 
    } 

    public static void main(String[]args) { 
    Scanner cin = new Scanner(System.in); 
    String S = cin.nextLine(); 
    int f = S.makeInt(); 
    } 
} 

错误:

T69.java:12: error: cannot find symbol 
int i=S.lenght()-1; 
^ 
symbol: method lenght() 
location: variable S of type String 
T69.java:24: error: cannot find symbol 
int f = S.makeInt(); 
^ 
symbol: method makeInt() 
location: variable S of type String 
2 errors 

回答

1

首先,你拼错lengthlenght

int i=S.lenght()-1; 

其次,你的方式”重新呼叫makeInt()是不正确的,因为它不是的成员。

0

您的方法名称中有错字。

变化

int i=S.lenght()-1; 

int i=S.length()-1; 

而且你被不正确地调用makeInt()

变化

int f = S.makeInt(); 

int f = makeInt(); 
2

为了让您的代码编译:

  • 变化S.lenght()S.length()
  • 变化int f = S.makeInt();int f = makeInt();

为了让您的代码工作:

  • 变化String S = cin.nextLine();S = cin.nextLine();
  • 变化n+=tein*(int)S.charAt(i);n+=tein*(S.charAt(i) - '0');

为了让你的代码干净:

import java.util.Scanner; 
    public class T69 { 

    public static int makeInt(String s){ 
     int n = 0; 
     int tein = 1; 
     int i = s.length() - 1; 
     while (i > 0) { 
     n += tein * (s.charAt(i) - '0'); 
     tein *= 10; 
     i--; 
     } 
     return n; 
    } 

    public static void main(String[]args) { 
     Scanner cin = new Scanner(System.in); 
     int f = makeInt(cin.nextLine()); 
     System.out.println(f) 
    } 
    } 

顺便说一句,你可以把它甚至比清洁。

+0

您不慎左's.lenght()'在干净的代码:) – 2011-12-22 18:13:36

+0

感谢@BeauGrantham – 2011-12-22 18:14:12

+0

第二个感谢,@BeauGrantham – 2011-12-22 18:14:56

0

int i=S.lenght()-1;

变化

int i=S.length()-1;