I am trying to write a method that will use StringTokenizer to break up a user inputted String by a single space and store each word into their own array. The given code is as far I have gotten before getting stuck for 3 hours. I am trying to test out the code by having the for loop print out the elements of the array but all it does is return null for every element. What am I doing wrong? My best guess is that it is not assigning the array index to a token but I am not sure.. Any help would be amazing. Thank you!
Also, I know StringTokenizer is old legacy stuff but my professor strictly stated that he wants us to use it.
Thanks
private void receiveInput() { Scanner scanner = new Scanner(System.in); System.out.println("Please enter your command: "); String input = scanner.nextLine(); StringTokenizer st = new StringTokenizer(input, " "); int number = st.countTokens(); String tokenArray[] = new String[number]; for (int i = 0; i < tokenArray.length; i++) { System.out.println(tokenArray[i]); } }
Advertisement
Answer
String array tokenArray
is initialized with size of tokens, but elements in the array are not assigned with values
require
tokenArray[i] = st.nextToken();
amended code
Scanner scanner = new Scanner(System.in); System.out.println("Please enter your command: "); String input = scanner.nextLine(); StringTokenizer st = new StringTokenizer(input, " "); int number = st.countTokens(); String tokenArray[] = new String[number]; for (int i = 0; i < tokenArray.length; i++) { tokenArray[i] = st.nextToken(); System.out.println(tokenArray[i]); }