我有一个程序从文件读取,获取每个单词并将其作为字符串添加到数组中。我在将字符串添加到数组时遇到了麻烦。我得到错误:
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; }
非常感谢
答案很长很无聊,如果您只想简单回答,请跳到底部 。
好的,伙计,我想我在这里看到您的问题,首先我要说的是,您可能会混淆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!!!");
现在您知道其中的好运了。我也犯了同样多次的错误…