Solved

Java program

Posted on 1998-07-15
1
162 Views
Last Modified: 2010-05-18
I have to write a program that takes a command line argument and splits it into it's component parts and prints it out like :

java Prog4 "var1=one+two&var2=this+is+another+one"

would yield

var1
 one
 two
var2
 this
 is
 another
 one

I have to do this with three class files that are mostly empty.  The problem that I am having is that when I try and run the program, I get an error that is a java.nullpointerexception.  The three classes are below.  If you have any idea why this is happening, it would be most appreciated if you told me.  Thanks!

Here is Prog4.java
/**
 * Prog4 is a test harness for parsing out html form queries.
 *
 * These queries are in the form: name=val1+val2&name2=val3+val4+val5.  
 * A query is enterered at the command line as: % java Prog4 "name=val"
 * NOTE: do not edit this file.
 *
 *
 */
class Prog4 {
  /**
   * The driver for program 4.
   *
   * @param args the command line argument containing the query to be parsed
   */
  public static void main(String[] args) {
    if (args.length != 1)
      System.err.println("usage: java Prog4 <html form query>");
    else {
      HTMLFormQuery query = new HTMLFormQuery(args[0]);

      for (int i = 0; i < query.getPairCount(); i++) {
      HTMLFormQueryPair pair;

      pair = query.getPairAt(i);
      System.out.println(pair.getName());
      for (int j = 0; j < pair.getValueCount(); j++)
        System.out.print(" " + pair.getValueAt(j));
      if (pair.getValueCount() != 0)
        System.out.println();
      } // for
    } // else
  } // main
} // Prog4

Here is HTMLformquery.java

class HTMLFormQuery {
  private HTMLFormQueryPair[] pairs; // the query pairs

  /**
   * Returns the number of query pairs
   *
   * @returns the number of pairs in the query
   */
  public int getPairCount() {
    return pairs.length;
  } // getPairCount

  /**
   * Returns a requested query pair
   *
   * @param index the requested pair
   *
   * @ returns the query pair specified by index
   */
  public HTMLFormQueryPair getPairAt(int index) {
    return pairs[index];
  } // getPairAt

  // insert your code below
  public HTMLFormQuery(String pairs) {
        System.out.println(pairs);
  } // constructor

 

} // HTMLFormQuery

and here is htmlformquerypairs.java

/**
 * @author your-name-here
 */
class HTMLFormQueryPair {
  private String name; // the name of pair
  private String[] values; // the values of the pair

  /**
   * Returns the name of the query pair
   *
   * @return the name of the query pair
   */
  public String getName() {
    return name;
  } // getName

  /**
   * Returns the number of values in the pair
   *
   * @return the number of values in the pair
   */
  public int getValueCount() {
    return values.length;
  } // getValueCount
 
  /**
   * Returns a specified value
   *
   * @param index the location of the requested value
   *
   * @return the value from a specified index
   */
  public String getValueAt(int index) {
    return values[index];
  } // getValueAt

  // insert your code below ___________________________________________________
} // HTMLFormQueryPair
0
Comment
Question by:alpine
1 Comment
 
LVL 5

Accepted Solution

by:
fontaine earned 50 total points
ID: 1226577
A java.lang.NullPointerException mostly happens when you try to access a method or a
class variable from a class instance that has not actually be created. This is the case here.
Indeed, the program fails on the query.getPairCount() of the

for (int i = 0; i < query.getPairCount(); i++)

line because getPairCount() returns the value of the length of "pairs", which is an HTMLFormQueryPair table that has not been initialized. I.e., pairs=null and
pairs.length=null.length, what throws a java.lang.NullPointerException. Once you will have splitted the pairs and properly initialized "pairs", the table of HTMLFormQueryPair, the problem will no more occur.
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

For beginner Java programmers or at least those new to the Eclipse IDE, the following tutorial will show some (four) ways in which you can import your Java projects to your Eclipse workbench. Introduction While learning Java can be done with…
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
Viewers learn about the “while” loop and how to utilize it correctly in Java. Additionally, viewers begin exploring how to include conditional statements within a while loop and avoid an endless loop. Define While Loop: Basic Example: Explanatio…
This video teaches viewers about errors in exception handling.

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now