I am trying to count the number of words in a sentence. My method of doing this is as follows;
1.Accept a sentence from the user using System.in
2.Scan the user input and store as a String.
3.Scan the String.
4.Enter while loop that is entered as long as the sentence has another String.
Within while loop;
5.Next word in sentence is stored as a String.
6.Get length of that word.
7.Create a substring minus the previous word.
8.Increment an int variable to count the words.
Hers's my code;
import java.util.Scanner;//Imports Scanner class
public class Test//Start of public class
public static void main(String args)//Start of main method
Scanner input = new Scanner(System.in);//Sets up new Scanner object. Reads from system
System.out.print("user: Tell me about yourself"); //Creates input from system
String Sentence = input.nextLine();//Store input as a String
Scanner sentence = new Scanner(Sentence);//Scan that String
int wordcount = 0;
String word = sentence.next();//Store next word in sentence as a String
length = word.length();//Get length of that word
fullLength = Sentence.length();//Length of full sentence
Sentence = Sentence.substring(length+1, fullLength);//Create new sentence minus the previous word
wordcount++;//Increment int variable
System.out.println("This sentence has "+wordcount+" words");
My problem is I get an outOfBounds exception when creating the substring. I can't see how this is as the begin and end index are within the length of the String.
Any help would be much appreciated.