Solved

Java program

Posted on 1998-07-15
1
183 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

Does Powershell have you tied up in knots?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Arrays.asList  VS  ArrayList 4 59
map related example 6 48
How to execute a Python program and gather return output in Java 2 30
String array comparison 4 34
For customizing the look of your lightweight component and making it look lucid like it was made of glass. Or: how to make your component more Apple-ish ;) This tip assumes your component to be of rectangular shape and completely opaque. (COD…
Are you developing a Java application and want to create Excel Spreadsheets? You have come to the right place, this article will describe how you can create Excel Spreadsheets from a Java Application. For the purposes of this article, I will be u…
Viewers will learn about if statements in Java and their use The if statement: The condition required to create an if statement: Variations of if statements: An example using if statements:
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.

777 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