Hi guys,
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;
int length;
int fullLength;
while(sentence.hasNext())
{
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");
System.exit(0);
}
}
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.
Kind Regards,
DD.