Извлекать целые числа цепи JAVA

у меня есть эта цепь (LIXA ABIMERHI JUAN JOSE,DISEÑO DE INTERFACES,90,88,81,90) и они просят меня:

  1. Читать данные из-за линий используя метод split класса String отделять поля.
  2. Обращать в целое число 4 цепи текста квалификаций и вычислять среднюю величину их.

(это цепи, содержавшие в файле)

Мой код:

Scanner sc = new Scanner(System.in);
File file = new File("E:/SEMESTRE2/POO/PROGRAMAS/TareasSem2/src/U6/Calificaciones.txt");
if (!file.exists()) 
{
    System.out.println ("No existe el archivo: "+file);
    System.exit(1);
}
System.out.println ("Archivo Encontrado");
System.out.print ("Escribe El Promedio Minimo ");
int prom = sc.nextInt();
try 
{

    FileReader fr = new FileReader(file);
    BufferedReader bfr = new BufferedReader(fr);
    String linea=bfr.readLine();
    String[] parts = linea.split(","); 

    //nombre> parts[0] materia parts[1] num1 parts [2]

    //System.out.println(linea);
    while (linea != null) 
    {
            double num = 0, mat, promA = 0;
            for(int i = 2;i>=2&&i<=5;i++)
            {

            mat=Double.parseDouble(parts[i]);
            num = num + mat;
            promA = num / 4;

            }
            System.out.println(linea+"  "+promA);


        linea=bfr.readLine();
    }
    /*while (linea != null) 
    {
        double num = 0, mat, promA = 0;
            for(int i = 2;i>=2&&i<=5;i++)
            {

            mat=Double.parseDouble(parts[i]);
            num = num + mat;
            promA = num / 4;

            }

            System.out.println(promA);
        linea=bfr.readLine();
    }*/
    bfr.close();
    fr.close();
}
catch (java.io.FileNotFoundException ex) 
{
    System.out.println ("No existe el archivo: "+file);
}
catch (java.io.IOException ex) 
{
    System.out.println ("Error al leer el archivo: "+file);
}//fin del catch IO

ok уже я нашел как только, что сейчас печатает мне всегда ту же среднюю величину и не возобновляет

4
задан 24.11.2017, 17:31
2 ответа

Прости меня, английский язык - мой первый язык. Не сомневайся в том, чтобы просить aclaraciГіnes.

мы Можем делать легенды цепи с утилитой Scanner.

String direccion = "cadenas.dat";
File documento = new File(direccion);
Scanner lector = null;
try {
    lector = new Scanner(documento);
} catch (FileNotFoundException e1) {
    System.err.println("No puedo leer " + direccion);
    System.exit(1);
}
System.out.println("Archivo encontrado.");

Scanner teclado = new Scanner(System.in);
System.out.print("Escribe el promedio minimo: ");
double minPromedio = teclado.nextDouble();


// Verificas que el documento tiene mas lineas por leer.
while(lector.hasNextLine()) {
    String linea = lector.nextLine();

    String[] partes = linea.split(",");
    String nombre = partes[0];
    String profesion = partes[1];

    double calSuma = 0; // La suma de los calificaciones
    int cuantosCal = 0; // La numero de calificaciones que inclue en los calculaciones.
    for(int i = 2; i < partes.length; i++) {
        try {
            double calificacion = Double.parseDouble(partes[i]);
            cuantosCal++;
            calSuma += calificacion;
        } catch (Exception e) {
            System.err.print("Encontre un numero que no puedo leer.");
            continue; // Omites la numero corriente.
        }
    }

    double promedio = calSuma / cuantosCal;

    System.out.println(nombre + " tiene un calificacion promedio de " + promedio + ".");

    // Verificas que la promedio es el mismo o mas alto de la promedio minimo.
    if(promedio >= minPromedio) {
        System.out.println(nombre
                + " tiene un calification promedio que cumple con el requisito.");
    }
}

lector.close();
teclado.close();

Я Думаю, что он cГіdigo, смоги делать, что ты хочешь, но эта diseГ±o состоит difГ-cil для изменения из-за cГіdigo в том, что он может возобновлять.

, Если ты любишь cГіdigo, что может возобновлять, ты нуждаешься в том, чтобы поместить линии в один List перед снопами они cГЎlculos, потому что утилита Scanner не может возвращаться в начале файла (кроме, когда повторно включать Scanner возразило).

0
ответ дан 24.11.2019, 04:05

у меня есть другой mГ©todo, посредством которого ты можешь доставать три nГєmeros без проблем в array и despuГ©s манипулировать такими вышеупомянутыми замечаниями как int , чтобы реализовывать то, что ты хочешь с этим.

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    File file = new File("/home/pietrodeocre/git/EjerciciosDAMeclipse/src/PracticasStackOverFlow/Texto.txt");

    if (!file.exists()) {
        System.out.println ("No existe el archivo: "+file);
        System.exit(1);
    }
    System.out.println ("Archivo Encontrado");
    //System.out.print ("Escribe El Promedio Minimo ");
    //int prom = sc.nextInt();
    int[] notas = new int[4];
    List<String> infoList = new ArrayList<String>();
    infoList = tokenizador(file);

    for(int i = 0; i< infoList.size();i++) {
        notas[0]  = new Integer(infoList.get(i+2));
    }

    notas[1]  = new Integer(infoList.get(3));
    notas[2]  = new Integer(infoList.get(4));
    notas[3]  = new Integer(infoList.get(5));

    System.out.println("Nostas: " +notas[0] + ", " + notas[1]+ ", " + notas[2] + ", " + notas[3] );

}

/*
 * Devuelve una lista con las palabras de un archivo
 */
public static List<String> tokenizador(File ruta) {

    FileInputStream fis = null;
    BufferedReader dais = null;
    String cadenaString = null;
    StringTokenizer tokenizador = null;
    String tok = null;
    List<String> tokList = null;

    try {

        fis = new FileInputStream(ruta);
        dais = new BufferedReader(new InputStreamReader(fis));
        tokList = new ArrayList<String>();

        while ((cadenaString = dais.readLine()) != null) {

            tokenizador = new StringTokenizer(cadenaString, ",");

            while (tokenizador.hasMoreTokens()) {

                tok = tokenizador.nextToken();

                tokList.add(tok);

            }

        }       

    } catch (Exception e) {
        e.printStackTrace();
    }finally {
        try {
            dais.close();
        } catch (final IOException e2) {
            e2.printStackTrace();
        }finally {

        }
    }
    return tokList;
}

Надеялся, что он служит тебе, и в них demГЎs для того, чтобы использовать класс StringTokenizer , который очень Гєtil.

0
ответ дан 24.11.2019, 04:05