Java,找不到符号:奇怪

时间:2011-12-22 17:58:24

标签: 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

4 个答案:

答案 0 :(得分: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)
    }
  }
顺便说一句,你可以使它比这更清洁。

答案 1 :(得分:1)

首先,您将length拼错为lenght

int i=S.lenght()-1;

其次,您拨打makeInt()的方式不正确,因为它不是String的成员。

答案 2 :(得分:0)

您的方法名称中有拼写错误。

更改

int i=S.lenght()-1;

int i=S.length()-1;

您正在错误地调用makeInt()

更改

int f = S.makeInt();  

int f = makeInt();  

答案 3 :(得分:0)

  

int i = S.lenght() - 1;

更改为

  

int i = S.length() - 1;