Difference between revisions of "Debugging Practice"

From CompSciWiki
Jump to: navigation, search
Line 53: Line 53:
  
 
|Solution=The solution...
 
|Solution=The solution...
 +
|SolutionCode=
 +
<pre>
 +
import javax.swing.JOptionPane;
  
 +
public class WordReversal
 +
{
 +
    public static void main( String[] args )
 +
    {
 +
        int lastSpace = 0;
 +
        int nextSpace = 0;
 +
        String result = "";
 +
        String reversedWord = "";
 +
        String currWord = "";
 +
 +
        String input = JOptionPane.showInputDialog( "Enter a sentence:" );
 +
        while( nextSpace >= 0 )
 +
        {
 +
            nextSpace = input.indexOf( ' ', lastSpace + 1 );
 +
 +
            if( nextSpace != -1 )
 +
            {
 +
                currWord = input.substring( lastSpace, nextSpace + 1 );
 +
            }
 +
            else
 +
            {
 +
                currWord = input.substring( lastSpace, input.length() );
 +
            }
 +
 +
            reversedWord = "";
 +
            for( int j = currWord.length() - 1; j >= 0; j-- )
 +
            {
 +
                reversedWord = reversedWord + currWord.charAt( j );
 +
            }
 +
 +
            result = result + reversedWord;
 +
            lastSpace = nextSpace;
 +
        }
 +
 +
        JOptionPane.showMessageDialog( null, result, "Reversed Words",
 +
                JOptionPane.INFORMATION_MESSAGE );
 +
    }
 +
}
 +
</pre>
 
}}
 
}}

Revision as of 12:28, 6 April 2010

Back to the Program-A-Day homepage

Problem

Find the bugs in the code provided below. Hint: there are three.

import javax.swing.JOptionPane;

public class WordReversal 
{
    public static void main( String[] args ) 
    {
        int lastSpace = 0;
        int nextSpace = 0;
        String result = "";
        String reversedWord = "";
        String currWord = "";

        String input = JOptionPane.showInputDialog( "Enter a sentence:" );
        while( nextSpace >= 0 ) 
        {
            nextSpace = input.indexOf( ' ', lastSpace );

            if( nextSpace != -1 ) 
            {
                currWord = input.substring( lastSpace, nextSpace + 1 );
            } 
            else 
            {
                currWord = input.substring( lastSpace, input.length() );
            }

            for( int j = currWord.length() - 1; j >= 0; j-- ) 
            {
                reversedWord = reversedWord + currWord.charAt( j );
            }

            result = result + reversedWord;
        }

        JOptionPane.showMessageDialog( null, result, "Reversed Words",
                JOptionPane.INFORMATION_MESSAGE );
    }
}
 

SideSectionTitle

float
Taken from http://www.flickr.com/photos/daniello/565304023/

An image or By Students section

Solution

The solution...

Code

Solution Code

Back to the Program-A-Day homepage