Solved

Java program

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

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
windows explorer path to command prompt 5 54
oracle 11g 23 106
Using jdbcTemplate.batchUpdate to improve INSERT performance 6 20
learn programming 8 29
An old method to applying the Singleton pattern in your Java code is to check if a static instance, defined in the same class that needs to be instantiated once and only once, is null and then create a new instance; otherwise, the pre-existing insta…
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…
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…
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

789 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