小编典典

错误:找不到符号array.add(element);

java

我有一个程序从文件读取,获取每个单词并将其作为字符串添加到数组中。我在将字符串添加到数组时遇到了麻烦。我得到错误:

SortingWords.java:73: error: cannot find symbol
        array.add(element);
             ^

符号:方法add(String)位置:String []类型的变量数组

我检查了我的拼写,一切似乎都还好。发生了什么事,我该如何解决?

public class SortingWords {


 //global variables    
 public static int count = 0;

 public static void main(String [ ] commandlineArguments){
     String[ ] array = readFileReturnWords(commandlineArguments[0]);
     sortAndPrintArray(array, commandlineArguments[0]);

     if (commandlineArguments.length != 1) {
        System.out.println("Please enter the INPUT file name as the   1st commandline argument.");
        System.out.println("Please enter exactly one (1) commandline arguments.");
        // Immediately terminates program
          System.exit(1);   
     }// end of if
     // if no commandline argument errors, continue program
       String inputFile = commandlineArguments[0];
 }

 /**
 * readFileReturnWords - Used To Read from File & Store Each Word in Array
 * 
 * @param inputFile is the name of the file  
 */

 public static String [] readFileReturnWords(String inputFile){
     //create array
     //read one word at a time from file and store in array
     //return the array
     //error checking for commandline input

     //make an array of Strings
     final Integer MAX = 100;
     String array[] = new String [MAX];
     String element = "";

     // read  items from file & store in array
     //connects to file 
      File file = new File(inputFile);
      Scanner scanFile = null;
      try {
        scanFile = new Scanner(file);
      } 
      catch (FileNotFoundException exception) {
        // Print error message.
       System.out.print("ERROR: File not found for " + inputFile);
      }

     // if made connection to file, read from file
     if (scanFile != null) {
       String firstLineOfFile = "";
       firstLineOfFile = scanFile.nextLine();

     // keeps looping if file has more lines..
       while (scanFile.hasNextLine()) {
          // get a line of text..
          String line = scanFile.nextLine();

          // divides each line by commas
          Scanner lineInput = new Scanner(line).useDelimiter("\\s*");
          element = lineInput.next();

          array.add(element);
          count ++; 
     }
   }
    System.out.println("Alphabetical (ASCII) listing of words in file: ");
    System.out.println("Index  Element");
    for(int i=0;i<MAX;i++){
       System.out.print("Index = " );
       System.out.printf("%-7d", i);
       System.out.print(",  Element = ");
       System.out.println(array[i]);
   }
   return array;
}

非常感谢


阅读 243

收藏
2020-12-03

共1个答案

小编典典

答案很长很无聊,如果您只想简单回答,请跳到底部

好的,伙计,我想我在这里看到您的问题,首先我要说的是,您可能会混淆STRING
LISTS(请注意,不要使混淆的列表变得非常复杂,并且我要让我的硕士参加整个课程列表D =)上的字符串“ STRING ARRAYS”。

列表是一个可以放入各种东西的袋子,例如食品杂货袋,您可以放入胡萝卜,豌豆,苹果,或者在我们的情况下,当您使用Java字符串,整数等进行编程时…在袋子里的东西没有顺序。数组更像是奥利奥Cookie容器(数组)。您只将奥利奥(Oreos)放在那儿,它们都放入槽中并停留在那里,这与食品杂货袋(清单)不同,在杂物袋中,物品可能掉落到底部或顶部…。

这在数组中很重要,您无法更改大小,因此无法执行

    array.add(element)

如果您发现自己在问为什么,那么您需要考虑一下。如果创建一个包含2个元素的数组怎么办?那么每个元素都去了哪里?即使您不理解,Java语言也要求在Array中指定对象的位置。因此,要将对象添加到数组中,您需要指定位置。然后将其设置为想要的w
/ e,例如

那个地点,

    array[0];

简单回答 您将其设置为等于

    array[0] = "I want it to equal this string!!!";

简单答案的结尾

现在让我们看一下购物袋(它没有像数组一样的“槽”),请注意,您的代码中似乎没有列表,

    List<String> myBrandNewShinyList= new ArrayList<String>();

制作完此列表之后,您就可以像这样使用.add()了,

   myBrandNewShinyList.add("Let's add this string!!!");

现在您知道其中的好运了。我也犯了同样多次的错误…

2020-12-03