[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

Java program

Posted on 1998-07-15
1
Medium Priority
?
209 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 100 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

Upgrade your Question Security!

Add Premium security features to your question to ensure its privacy or anonymity. Learn more about your ability to control Question Security today.

Question has a verified solution.

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

This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
In this post we will learn different types of Android Layout and some basics of an Android App.
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
How to fix incompatible JVM issue while installing Eclipse While installing Eclipse in windows, got one error like above and unable to proceed with the installation. This video describes how to successfully install Eclipse. How to solve incompa…
Suggested Courses
Course of the Month20 days, 3 hours left to enroll

873 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