1

我正在努力理解声明和调用类的概念以及它们之间的变量流量。在我现在拥有的代码中,我相信有几个问题,但现在的主要问题是主方法无法使用另一种方法的返回值,我相信我做对了。编码:

import java.util.*;
import java.io.*;

class Uke63{
    public static void main(String[]args){

        char c='t';
        String tekst="Jabba the Hutt var en stygg fyr";

        forekommer(c, tekst);

        System.out.println(retval.forekommer);

    }

    static boolean forekommer(char c, String tekst){

        boolean retval=tekst.contains(c);
        return retval;
    }
}

以及我在尝试编译时遇到的错误:(我确实看到它没有找到该值,但我需要一些帮助以使其找到该特定值。)

makri@Marius-samlap:~/Programmering/Ukeoppgaver$ javac Uke63.java
Uke63.java:12: error: cannot find symbol
    System.out.println(retval.forekommer);
                       ^
  symbol:   variable retval
  location: class Uke63
Uke63.java:18: error: method contains in class String cannot be applied to given types;
    boolean retval=tekst.contains(c);
                        ^
  required: CharSequence
  found: char
  reason: actual argument char cannot be converted to CharSequence by method invocation conversion
2 errors
4

4 回答 4

5

将您的代码修改为此

import java.util.*;
import java.io.*;

class Uke63{
    public static void main(String[]args){

    char c='t';
        String tekst="Jabba the Hutt var en stygg fyr";

    System.out.println(forekommer(c, tekst));

    }

    static boolean forekommer(char c, String tekst){

    boolean retval=tekst.contains(c);
    return retval;
    }
}

原始代码中的问题:您试图访问在 main 中的 forekommer() 方法中声明的局部变量,这是不可能的。

于 2013-10-16T18:33:09.273 回答
1

问题是在您的主要方法中您无权访问“retval”。调用 forekommer 方法后,您需要将结果分配给局部变量。例如:

boolean someVarName =forekommer(c, tekst);
System.out.println(someVarName );
于 2013-10-16T18:43:36.900 回答
0

在这里,您可以在这里完善一些答案,并使代码编译并运行。

public class Uke63{
    public static void main(String[]args){
        CharSequence c=  "t";
        String tekst="Jabba the Hutt var en stygg fyr";
        System.out.println(forekommer(c, tekst));
    }

    private static boolean forekommer(CharSequence c, String tekst){
        return  tekst.contains(c);
    }
}
于 2013-10-16T18:45:14.417 回答
-1
public class Basics {

    public static void main(String[] args) {
        CharSequence c = "t";
        String tekst="Jabba the Hutt var en stygg fyr";
        boolean x = forekommer(c, tekst);
        System.out.println(x);
    }

    static boolean forekommer(CharSequence c, String tekst){
        CharSequence x = c;
        boolean retval = tekst.contains(x);
        return retval;
    }

}
于 2016-12-13T18:34:05.290 回答