?
Solved

Java problem with Scanner objects...

Posted on 2009-04-02
3
Medium Priority
?
391 Views
Last Modified: 2013-12-29
Hi there;

I am taking Brand, Type and Price as input with Scanner class but the problem is the program skips input...

I used debugging feature, no use...I am guessing the problem is from the price which is double...so i created some other Scanner objects...but no joy...Please run the attached code...

Best regards...

package hardware;
 
import java.util.ArrayList;
import java.util.Scanner;
 
public class Hardware {
 
    public static void main(String[] args) {
    String brand;
    String type;
    String wireType;
    double price;
    
    ArrayList a1 = new ArrayList();
 
    Scanner sc1 = new Scanner(System.in);
    Scanner sc2 = new Scanner(System.in);
    Scanner sc3 = new Scanner(System.in);
 
    // Enter the Information of MONITOR
    System.out.println("\n***Enter the Info of MONITOR*** ");
    System.out.println("Enter Brand: ");
    brand = sc1.next();
 
    System.out.println("Enter Type (LCD/CRT):");
    type = sc1.next();
 
    sc1.close();
    System.out.println("Enter Price:");
    price = sc2.nextDouble();
    
    sc2.close();
    a1.add(new Monitor(brand, type, price));
 
    // Enter the Information of MOUSE
    System.out.println("\n***Enter the Info of MOUSE*** ");
    System.out.println("Enter Brand:");
    brand = sc3.next();
 
    System.out.println("Enter Type(OPTIC/LASER):");
    type = sc3.next();
 
    System.out.println("Enter WireType (WIRED/WIRELESS): ");
    wireType = sc3.next();
 
    a1.add(new Mouse(brand, type, wireType));
 
    // Enter the Information of KEYBOARD
    System.out.println("\n***Enter the Info of KEYBOARD*** ");
    System.out.println("Enter Brand: ");
    brand = sc3.next();
 
    System.out.println("Enter Type (BASIC/MULTIMEDIA): ");
    type = sc3.next();
    
    sc3.close();
    a1.add(new Keyboard(brand, type));
 
    int i;
    for(i=0; i<a1.size(); i++)
            System.out.println("\nObject "+i+a1.get(i));
    }
 
}

Open in new window

0
Comment
Question by:jazzIIIlove
3 Comments
 
LVL 15

Accepted Solution

by:
fsze88 earned 1200 total points
ID: 24049830
sorry, I am no Monitor, Mouse, Keyboard class. unable to debug for you...
could you try to use one Scanner only?
it works fine when I use one Scanner
 
import java.util.ArrayList;
import java.util.Scanner;
 
public class Hardware {
 
    public static void main(String[] args) {
    String brand;
    String type;
    String wireType;
    double price;
    
//    ArrayList a1 = new ArrayList();
 
    Scanner sc1 = new Scanner(System.in);
//    Scanner sc2 = new Scanner(System.in);
//    Scanner sc3 = new Scanner(System.in);
 
    // Enter the Information of MONITOR
    System.out.println("\n***Enter the Info of MONITOR*** ");
    System.out.println("Enter Brand: ");
    brand = sc1.next();
 
    System.out.println("Enter Type (LCD/CRT):");
    type = sc1.next();
 
//    sc1.close();
    
    
    System.out.println("Enter Price:");
    price = sc1.nextDouble();
    
//    sc2.close();
//    a1.add(new Monitor(brand, type, price));
 
 
 
    // Enter the Information of MOUSE
    System.out.println("\n***Enter the Info of MOUSE*** ");
    System.out.println("Enter Brand:");
    brand = sc1.next();
 
    System.out.println("Enter Type(OPTIC/LASER):");
    type = sc1.next();
 
    System.out.println("Enter WireType (WIRED/WIRELESS): ");
    wireType = sc1.next();
 
//    a1.add(new Mouse(brand, type, wireType));
 
 
 
 
    // Enter the Information of KEYBOARD
    System.out.println("\n***Enter the Info of KEYBOARD*** ");
    System.out.println("Enter Brand: ");
    brand = sc1.next();
 
    System.out.println("Enter Type (BASIC/MULTIMEDIA): ");
    type = sc1.next();
    sc1.close();
//    sc3.close();
//    a1.add(new Keyboard(brand, type));
/* 
    int i;
    for(i=0; i<a1.size(); i++)
            System.out.println("\nObject "+i+a1.get(i));
    }
*/ 
  }
}

Open in new window

0
 
LVL 9

Assisted Solution

by:brunoguimaraes
brunoguimaraes earned 800 total points
ID: 24049901
As fsze88 said, it works with only one Scanner object. I created the missing classes Mouse, Monitor and Keyboard and ran this code with one Scanner and it worked.
package hardware;
 
import java.util.ArrayList;
import java.util.Scanner;
 
public class Hardware {
 
	public static void main(String[] args) {
		String brand;
		String type;
		String wireType;
		double price;
 
		ArrayList a1 = new ArrayList();
 
		Scanner sc1 = new Scanner(System.in);
 
		// Enter the Information of MONITOR
		System.out.println("\n***Enter the Info of MONITOR*** ");
		System.out.println("Enter Brand: ");
		brand = sc1.next();
 
		System.out.println("Enter Type (LCD/CRT):");
		type = sc1.next();
 
		System.out.println("Enter Price:");
		price = sc1.nextDouble();
 
		a1.add(new Monitor(brand, type, price));
 
		// Enter the Information of MOUSE
		System.out.println("\n***Enter the Info of MOUSE*** ");
		System.out.println("Enter Brand:");
		brand = sc1.next();
 
		System.out.println("Enter Type(OPTIC/LASER):");
		type = sc1.next();
 
		System.out.println("Enter WireType (WIRED/WIRELESS): ");
		wireType = sc1.next();
 
		a1.add(new Mouse(brand, type, wireType));
 
		// Enter the Information of KEYBOARD
		System.out.println("\n***Enter the Info of KEYBOARD*** ");
		System.out.println("Enter Brand: ");
		brand = sc1.next();
 
		System.out.println("Enter Type (BASIC/MULTIMEDIA): ");
		type = sc1.next();
 
		sc1.close();
		a1.add(new Keyboard(brand, type));
 
		int i;
		for (i = 0; i < a1.size(); i++)
			System.out.println("\nObject " + i + a1.get(i));
	}
 
}

Open in new window

0
 
LVL 12

Author Closing Comment

by:jazzIIIlove
ID: 31565774
swift!

The thing is I have stg in my mind that there is a problem with Scanner class while scanning double variables...
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

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…
Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Viewers will learn about the different types of variables in Java and how to declare them. Decide the type of variable desired: Put the keyword corresponding to the type of variable in front of the variable name: Use the equal sign to assign a v…
This tutorial covers a practical example of lazy loading technique and early loading technique in a Singleton Design Pattern.
Suggested Courses

621 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