Problemas con las salidas de matriz y solicitud de salidas de entrada de usuario

Tengo algunos problemas con respecto a mi tarea de laboratorio:

Cuando mi programa intenta solicitar al usuario que ingrese, el programa genera dos preguntas en la misma línea y solo toma la entrada para la segunda pregunta.

La salida de mi programa:

Ingrese el nombre del segundo empleado: Ingrese el número del segundo empleado: 1

(Aparecen en la misma línea en lugar de líneas separadas)

También la salida para un conjunto de salidas como esta:

0.00.00.00.00.00.00.00.00.00.0 

en lugar de esto:

0, 0, 0, 0, 0, 0, 0, 0, 0, 0

No estoy muy seguro de cómo solucionar estos dos, ¡cualquier ayuda sería apreciada!

Aquí está mi código:

Employee.java

//import java.util.*;

public class Employee
{
    private String empName;
    private int empNumber;
    private String empAddress;
    private double empSalary;

private double[] empBonus=new double[10];

public Employee(){}

public Employee(String empName_, int empNumber_, String empAddress_, double empSalary_, double[] empBonus_)
{
    this.empName=empName_;
    this.empNumber=empNumber_;
    this.empAddress=empAddress_;
    this.empSalary=empSalary_;

    this.empBonus=empBonus_;
}

public String getName()
{
    return this.empName;
}

public int getEmployeeNumber()
{
    return this.empNumber;
}

public String getAddress()
{
    return this.empAddress;
}

public double getSalary()
{
    return this.empSalary;
}

public String changeAddress(String chAddress)
{
    return empAddress=chAddress;
}

public double changeSalary(double chSalary)
{
    return empSalary=chSalary;
}

public String addBonus(double[] empBonus)
{
    String arrayBonus=new String("");

    for(int i=0; i<empBonus.length;i++)
    {
        arrayBonus+=empBonus[i];
    }

    return arrayBonus;
}

public String toString()
{
    return ("\nEmployee's name: "+empName+"\nEmployee's Number: "+empNumber+"\nEmployee's address: "+empAddress+
            "\nEmployee's original salary: "+empSalary+ "\nEmployee's bonuses: "+addBonus(empBonus)+"\n");
}
}

EmployeeTester.java

import java.util.*;

public class EmployeeTester
{
public static void main(String[] args)
{
    Scanner in1=new Scanner(System.in);
    Scanner in2=new Scanner(System.in);
    Scanner in3=new Scanner(System.in);

    Employee emp1;
    Employee emp2;

    emp1=read_input("first", in1, in2, in3);
    emp2=read_input("second", in1, in2, in3);

    System.out.println(emp1.toString());
    System.out.println(emp2.toString());

}

public static Employee read_input(String msg, Scanner scan1, Scanner scan2, Scanner scan3)
{
    String name, address;
    int num;
    double salary;
    double[] bonus=new double[10];

    System.out.print("\nPlease enter the name of the "+msg+" employee:");
    name=scan1.nextLine();

    System.out.print("Please enter the number of the "+msg+" employee:");
    num=scan2.nextInt();

    System.out.print("Please enter the address of the "+msg+" employee:");
    address=scan1.nextLine();

    System.out.print("Please enter the salary of the "+msg+" employee:");
    salary=scan3.nextDouble();

    System.out.print("Please add a bonus for the "+msg+" employee:");
    bonus[0]=scan3.nextDouble();

    System.out.print("Add more bonuses to the "+msg+"employee? (y/n) \nNote: Enter 0.0 if you would like to terminate adding more bonuses: ");

    if(scan1.next().startsWith("y"))
    {
        for(int i=1; i<bonus.length;i++)
        {
            System.out.print("Continue entering a bonus to "+msg+" employee:");
            bonus[i]=scan3.nextDouble();

            if(bonus[i]==0.0 || i==bonus.length)
            {
                break;
            }
        }
    }   

    return new Employee(name, num, address, salary, bonus);
}
}
Respuesta 1

Para su primer problema, simplemente cambie Scannerssu read_inputmétodo para que comiencen de nuevo cada vez.

public static void main(String[] args) {
    Employee emp1;
    Employee emp2;

    emp1 = read_input("first");

    emp2 = read_input("second");

    System.out.println(emp1.toString());
    System.out.println(emp2.toString());

}

public static Employee read_input(String msg) {
    Scanner scan1 = new Scanner(System.in);
    Scanner scan2 = new Scanner(System.in);
    Scanner scan3 = new Scanner(System.in);
    ...

Para su segundo problema, en su addBonusmétodo donde construye la cadena de salida, no agrega espacios ni comas. También es mucho más eficiente si usa un StringBuilderpara este tipo de concatenación en bucle en lugar de crear repetidamente nuevos objetos de cadena.

public String addBonus(double[] empBonus)
{
    StringBuilder arrayBonus = new StringBuilder();

    for(int i=0; i<empBonus.length;i++)
    {
        arrayBonus.append(empBonus[i] + ", ");
    }

    return arrayBonus.toString();
}
Respuesta: 2

Enlace UVA: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=464 Estoy perdido en lo que estoy haciendo ahora. No sé por qué estoy produciendo incorrecto ...

Quiero acceder al índice de la opción seleccionada por el usuario. Por ejemplo, en la figura a continuación, si elijo la opción de Microsoft, entonces debería darme el índice 1. ¿Es esto posible?

En mi proyecto, debo proporcionar algunas funciones que se pueden proporcionar usando la sesión y la variable de la aplicación, como en c #. MI información es confidencial, por lo que no se puede almacenar en archivos como xml Gracias en ...

Tengo la configuración log4j jdbcappender de la siguiente manera: <appender name = "jdbcAppender" class = "bean.CustomJdbcAppender"> <param name = "jndiDataSource" value = "myDS" /> <layout ...