Hi,
I am new at java.
I have made the search class of an address book program
with the functions of add, modify and delete.

Please have a look into the code.

Please also explain the function of

e.printstacktrace();
import java.io.*;
import java.util.*;
class search
{
	private String str,sval;
	private String arr[]=new String[8];
	private int ch;
	private int pos,ctr;
	clear c1=new clear();
	BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

	public void calc()throws IOException
	{
			
                DataInputStream in=DataInputStream(new FileInputStream("adbk.txt"));
		System.out.println("How would you like to search?");
		System.out.println("1)by fn");
		System.out.println("2)by ln");
		System.out.println("3)by area code");
		System.out.println("4)by city");
		System.out.println("5)by state");
		System.out.println("enter choice:");
		ch=Integer.parseInt(br.readLine());
																							

		switch(ch)
		{
			case 1:
			{
				System.out.println("enter fn");
				pos=0;
				break;
			}
			case 2:
			{
				System.out.println("enter ln");
				pos=2;
				break;
			}
			case 3:
			{
				System.out.println("enter arcd");
				pos=3;
				break;
			}
			case 4:
			{
				System.out.println("enter city");
				pos=5;
				break;
			}
			case 5:
			{
				System.out.println("enter state");
				pos=6;
				break;
			}
			default:
			{
				System.out.println("error");
				break;
			}
		}
		sval=br.readLine();


																					//clr here
		while((str=in.readLine())!=null)
		{

			StringTokenizer st=new StringTokenizer(str,"_");
			for(int i=0;i<=7;i++)
			{
				arr[i]=st.nextToken();
			}

			if(sval==arr[pos])
			{
				ctr++;
				for(int i=0;i<=7;i++)
				{
					System.out.print(arr[i]+" ");
				}
				System.out.println();
			}

		}

		System.out.println("Total hits="+ctr);

	}
	public static void main(String args[])
		{
			search s=new search();

			try
			{
				s.calc();
			}

			catch(IOException e)
			{
				System.out.println("error");
			}
		}
}

Recommended Answers

All 4 Replies

Please have a look into the code.

Why? Is there something wrong with it? If so, what specifically?

Please also explain the function of

e.printstacktrace();

There is no such function as you have written it. There is, however, a printStackTrace() method on Throwable. Read that API link to see what it does.

When I run the program,the search part(HIGHLIGHTED) does not work.
Please tell me where I am going wrong.

import java.io.*;
import java.util.*;
class search
{
	private String str,sval;
	private String arr[]=new String[8];
	private int ch;
	private int pos,ctr;

	BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

	public void calc()throws IOException
	{
		BufferedReader in=new BufferedReader(new FileReader("adbk.txt"));			//file read
		//DataInputStream in=DataInputStream(new FileInputStream("adbk.txt"));
		System.out.println("How would you like to search?");
		System.out.println("1)by fn");
		System.out.println("2)by ln");
		System.out.println("3)by area code");
		System.out.println("4)by city");
		System.out.println("5)by state");
		System.out.println("enter choice:");
		ch=Integer.parseInt(br.readLine());
																							

		switch(ch)
		{
			case 1:
			{
				System.out.println("enter fn");
				pos=0;
				break;
			}
			case 2:
			{
				System.out.println("enter ln");
				pos=2;
				break;
			}
			case 3:
			{
				System.out.println("enter arcd");
				pos=3;
				break;
			}
			case 4:
			{
				System.out.println("enter city");
				pos=5;
				break;
			}
			case 5:
			{
				System.out.println("enter state");
				pos=6;
				break;
			}
			default:
			{
				System.out.println("error");
				break;
			}
		}
		sval=br.readLine();
																							//clr here
		while((str=in.readLine())!=null)
		{

			StringTokenizer st=new StringTokenizer(str,"_");
			for(int i=0;i<=7;i++)
			{
				arr[i]=st.nextToken();


			}
			System.out.println();

			if(sval==arr[pos])
			{
				ctr++;
				for(int i=0;i<=7;i++)
				{
					System.out.print(arr[i]+" ");
				}
				System.out.println("");
			}

		}

		System.out.println("Total hits="+ctr);

	}

}

Thanks.

Define "does not work".

It doesn't work because you compare strings using "==". Try this:

if(sval.equals(arr[pos]))
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.