2011-12-22 80 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;