有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

新问题:在java中传递对象?

我是java新手。我正在做以下工作:

从文件中读取数据,然后将数据放入变量中

我已将checkToken和lineToken声明为类下的公共字符串

    public static void readFile(String fromFile) throws IOException {
    BufferedReader reader = new BufferedReader(new FileReader(fromFile));
          String line = null;
          while ((line=reader.readLine()) != null )  {
          if (line.length() >= 2) { 
               StringTokenizer lineToken = new StringTokenizer (line);
               checkToken = lineToken.nextToken();
               processlinetoken()
               ......

但我遇到了一个问题

     public static void processlinetoken()
          checkToken=lineToken.nextToken();
     }

它失败了

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
 The method nextToken() is undefined for the type String

 at testread.getEngineLoad(testread.java:243)
 at testread.readFile(testread.java:149)
 at testread.main(testread.java:119)

那我怎么才能让它工作呢?它似乎传递了变量,但在后面没有传递任何内容。工作

EclipseIDE没有太多帮助“链接本地重命名的所有引用(不会更改 在其他文件中引用)“在文件中重命名”是唯一的选项。它不起任何作用


共 (3) 个答案

  1. # 1 楼答案

    谢谢你,杰克

    我声明了一个公共静态字符串,但随后在readFile()中声明了一个StringTokenizer。因此,在调用ProcessLineToken()时,它查看的是空字符串变量,而不是readFile()中声明的StringTokenizer

    我误解了StringTokenizer的用法。这是一种类型,不是扩展

  2. # 2 楼答案

    您正试图在testread的第243行的字符串上调用nextToken()。JAVA如果您使用的是IDE,它应该会告诉您问题所在

  3. # 3 楼答案

    看起来lineTokenString而不是StringTokenizer。可能您已经声明了String lineToken作为类的属性,并计划使用它,但在readFile方法中,您分配给lineTokena new StringTokenizer(),但您的定义是局部的,并且与您正在执行的定义相冲突

    您应该尝试从中删除StringTokenizer

    StringTokenizer lineToken = new StringTokenizer (line);
    

    就这么做吧

    lineToken = new StringTokenizer(line);