Results 1 to 3 of 3
  1. #1
    Felissa is offline Member
    Join Date
    Jun 2007
    Posts
    95
    Rep Power
    0

    Default Help with String

    I have written a program that asks the user to input a five-letter word and then will return all valid three letter words from the original word. My problem is that I am getting nothing to print, I don't know if I am doing the comparison properly.

    Java Code:
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.util.Scanner;
    
    public class ThreesFromFive 
    {
    
    	public static void rearrangeAndOuput() throws FileNotFoundException
    	{
    		String word = new String();
    		String threeLetterWord = new String();
    		StringBuffer wordBuffer = new StringBuffer();
    		Scanner input = new Scanner(System.in);
    		Scanner inFile = null;
    		
    		//0pens file to be read
    		try
    		{
    			inFile = new Scanner(new FileReader("../JavaHomework/chapt29_18/threeletterwords.txt"));
    		}//end try 
    		
    		catch (FileNotFoundException e) 
    		{
    			System.err.println("File not found.");
    			System.exit(1);
    		}//end catch
    		
    		System.out.print("Enter a five letter word:");
    		word = input.next();
    		if (word.length() != 5)
    		{
    			System.out.print("Please enter a five letter word:");
    			word = input.next();
    		}
    		
    		System.out.print("The three letter words that can be made from\n");
    		System.out.print("the word you typed in is:\n");
    		
    		//create three letter words
    		for (int i = 0; i < 5; i++)
    		{
    			
    			for (int j = 0; j < 5; j++)
    			{
    				
    				for (int k = 0; k < 5; k++)
    				{
    					//create new three letter word
    					wordBuffer.append(word.charAt(i));
    					wordBuffer.append(word.charAt(j));
    					wordBuffer.append(word.charAt(k));
    					threeLetterWord = wordBuffer.toString().toLowerCase();
    					
    					while (inFile.hasNext())
    					{
    					
    						//check to see if word is valid three letter word
    						if (threeLetterWord.equals(inFile.next()))
    							System.out.printf("%s\n", threeLetterWord);
    						
    					}
    					
    					//re-initialize wordBuffer to create new word
    					wordBuffer = new StringBuffer();
    					
    				}//end for
    				
    			}//end for
    			
    		}//end for
    		
    	}//end rearrangeAndOutput
    	
    	
    	public static void main(String[] args) throws FileNotFoundException 
    	{
    		rearrangeAndOuput();
    	}
    
    }
    Thanks
    Felissa:p

  2. #2
    Eric is offline Senior Member
    Join Date
    Jun 2007
    Posts
    111
    Rep Power
    0

    Default

    Instead of constructing all the permutations of 3 letter words instead can you not scan every word of the file containing 3 letter words and simply check if the 5 letter input contains all the characters in the 3 letter word.

    Java Code:
     for each 3 letter word : word3
       for each character in word3 : ch
         check if input5 contains ch
       if all the characters of word3 are present in input5 print it
    Greetings.
    Eric

  3. #3
    Felissa is offline Member
    Join Date
    Jun 2007
    Posts
    95
    Rep Power
    0

    Default

    Thank you for the suggestion, it didn't work though. I think it has something to do with the way I'm reading in the file or the way I'm comparing the strings.

    Greetings.
    Felissa:p

Similar Threads

  1. Replies: 2
    Last Post: 09-18-2008, 07:30 AM
  2. String vs new String
    By bugger in forum New To Java
    Replies: 20
    Last Post: 11-26-2007, 12:21 PM
  3. Replies: 0
    Last Post: 11-20-2007, 04:59 PM
  4. Replies: 1
    Last Post: 08-07-2007, 07:29 AM
  5. Replies: 1
    Last Post: 08-03-2007, 10:52 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •