Работа с файлами

 
 
 
Сообщения:1
Всем добрый день!
Есть задача:
В файле, содержащем фамилии студентов и их оценки, записать прописными буквами фамилии тех студентов, которые имеют средний балл более “7”.

С файла я считал
/* Чтение строки */
		
			 try (BufferedReader reader = new BufferedReader(new FileReader("D://test.txt")))  {
			    String value = reader.readLine();
			    
			/*Добавление элемента в массив  */
			  ArrayList <String> list = new ArrayList <String>();
			    list.add(value);
			    System.out.println ("Первый элемент массива '" + list.get(0) + "'");
			//  System.out.println ("Первый элемент массива '" + list.get(1) + "'");
			//System.out.println ("Размер массива '" + Integer.valueOf (list.size()) + "'");
			    

Результат: Первый элемент массива 'Иванов Иван 5,6,5,3,5,9,4'
Далее, отсортировав буквы от чисел
/*      */
			    String arr = value;
			    String[] items = arr.replaceAll("\\[", "").replaceAll("\\]", "").replaceAll("\\s", "").split(",");

			    int[] results = new int[items.length];

			    for (int i = 0; i < items.length; i++) {
			        try {
			            results[i] = Integer.parseInt(items[i]);
			            System.out.print ("results[i] '" + results[i] + "'");
			       
			            
			        } catch (NumberFormatException nfe) {
			            //NOTE: write something here if you need to recover from formatting errors
			        };
			    }
			    
			    /*     */

Результат: results[i] '6'results[i] '5'results[i] '3'results[i] '5'results[i] '9'results[i] '4'
Побывал и по другому
/* Все строки файла засунуты в массив*/
				  
					String str_1 = linesAsArray[j];
			           String str_2 = linesAsArray[j];
						str_1 = str_1.replaceAll("[^0-9]+", "");
						str_2 = str_2.replaceAll("[^а-яА-Яa-zA-Z]", "");

				    	char [] c = str_1.toCharArray ();
						double average = 0;
				    	if (c.length > 0)
				    	{
				    		 System.out.println(" c.length "+ c.length);
				    	    double sum = 0;
				    	    for (int j1 = 0; j1 < c.length; j1++) {
				    	         sum += c[j1];
				    	    }
				    	    average = (sum / c.length);
				    	    
				    	    System.out.println("average "+ average);
				    	    System.out.println("c.length "+ c.length);
				    	    System.out.println("sum "+ sum);
				    	    System.out.println("c[0] "+ c[0]);
				    	    System.out.println("c[1] "+ c[1]);
				    	    System.out.println("c[2] "+ c[2]);
				    	    System.out.println("c[3] "+ c[3]);
				    	    System.out.println("c[4] "+ c[4]);
				    	    System.out.println("c[5] "+ c[5]);
				    	    System.out.println("c[5] + c[4] "+ c[5] + c[4]);
				    	}

average 53.285714285714285
c.length 7
sum 373.0
c[0] 5
c[1] 6
c[2] 5
c[3] 3
c[4] 5
c[5] 9
c[5] + c[4] 95
И так
 ArrayList<String[]> allArrays = new ArrayList<String[]>();  
			    allArrays.add(names);
			   allArrays.add(values);
			    for (String a[]:allArrays){
			        for (String b:a){
			      System.out.println("allArrays "+b);	


Результат:allArrays 5653594
allArrays ИвановИван
Короче с задачей не справился
Подскажите где выход:)
 
 
Сообщения:480
".* ([0-9]|10),([0-9]|10)*,([0-9]|10)$" //примерно в ту степь. не уверен - редко с регекспами работаю.



разберись с форматом записи.
создай класс Student.
сделай ему конструктор, который берёт строку.

PS
ни шиша это не результат данного кода.
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет