Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/34: Рейтинг темы: голосов - 34, средняя оценка - 4.62
2 / 2 / 0
Регистрация: 10.01.2011
Сообщений: 30

Вывод файла с сортировкой, метод split()

16.05.2011, 21:21. Показов 6626. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Не могу решить следующую задачу: Создать и заполнить файл случайными целыми числами. Выполнить сортировку содержимого файла по возрастанию.
У меня не получается преобразовать строку символов(в файле находятся числа) в целочисленный массив... Я пробую так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package lr5;
import java.io.*;
public class Main {
    public static void main(String[] args) throws FileNotFoundException, IOException {
      int mass[], N, i;
mass=new int[100];      
        BufferedReader br=new BufferedReader (new FileReader("data.txt"));
        String str=br.readLine();
  
 while ((str=br.readLine())!=null)
     {System.out.println(str); }  
       
 String[] numb=str.split(str);
 int arr[]=new int[numb.length];
    for (i=0; i<numb.length; i++)
    {arr[i]=Integer.parseInt(numb[i]);
     System.out.println(arr[i]); 
    }   
    }     
}
Но выдаёт ошибку в 13-й строке: "Exception in thread "main" java.lang.NullPointerException". Не могу понять, что я не так написала в методе split()?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.05.2011, 21:21
Ответы с готовыми решениями:

Считывание из файла и метод split
Всем привет! Все пытаюсь дорешать свою задачу. Необходимо считать из файла массив чисел. Ошибка в методе split. String StringFile...

Метод split - выдается ошибка Uncaught TypeError: Cannot read property 'split' of undefined
Вот кусок кода CheckLinkText: function(val, f){ if(!$('#attach_lnk_stared').val()){ matches = val.split('http://'); url =...

Метод Split()
Как можно разбить строку на массив, по символу открывающейся скобки ??? вот так не работает String temp = str.split(&quot;(&quot;); ...

3
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
16.05.2011, 22:29
Alisson, а ведь действительно, почему же выпадает эта ошибка и str равен null, если буквально строку назад равенство str == null было условием выхода из цикла?


Цитата Сообщение от Alisson Посмотреть сообщение
что я не так написала в методе split()?
вы попытались вызвать метод переменной которая равна null и при этом не знаете как работает этот метод и что принимает параметрами. Параметрами передается регулярное выражение, по которому разбивается строка на подстроки, а не сам текст. Вот, почитайте http://download.oracle.com/jav... ang.String)
0
2 / 2 / 0
Регистрация: 10.01.2011
Сообщений: 30
24.05.2011, 23:28  [ТС]
Спасибо за подсказку, с тем, что я хотела сделать, разобралась:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package lr5;
import java.io.*;
 
public class Main {
static void sort (int M[]) {
    int t[];
    int i=0;
    int j=0;  
    t=new int[M.length];
    for (i=0; i<M.length; i++){
     for (j=M.length-1; j>i; j--) {      
       if (M[j-1]>M[j])
       {
        t[j]=M[j-1];
        M[j-1]=M[j];
        M[j]=t[j];
       }
      }
    System.out.print (M[j]+" "); 
    }
}
public static void main(String[] args) throws FileNotFoundException, IOException {
    int i, j, temp[], arr[];
    BufferedReader br=new BufferedReader (new FileReader("data.txt"));
    String str="";
     while ((str=br.readLine())!=null)
   {
     String[] numb=str.split(" ");  
     arr=new int[numb.length];
     temp=new int[arr.length];
       for (i=0; i<numb.length; i++){
       arr[i]=Integer.parseInt(numb[i]); 
       }    
     sort(arr);  
    }               
} 
}
Добавлено через 5 минут
Так как я написала работает, но сортировка происходит по строкам. А если мне нужно отсортировать все числа файла по возрастанию, то мне нужно сначала записать его в матрицу, и отсортировать её? Что-то у меня опять не получается:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package lr52;
 
import java.io.*;
public class Main {
    static void vuvod(int mm[][]) {
        for(int i=0; i<mm.length; i++) {
           for(int j=0; j<mm[i].length; j++)
            System.out.print(mm[i][j]+"\t");
            System.out.println();
        }
    }
    static void sort (int m[][]){
     int temp=0; 
        for (int i=0; i<m.length;i++){
          for (int j=0; j<m.length; j++){
           if (m[i][j]>m[i+1][j+1])
            {
            temp=m[i][j];
            m[i][j]=m[i+1][j+1];
            m[i+1][j+1]=temp;
            }
          System.out.print(m[i][j]);
      }
      }
      }
    public static void main(String[] args) throws IOException {
        int mas[][], i, j, N, pos, arr[];
      BufferedReader br = new BufferedReader(new FileReader("data.txt"));
          
        String str = br.readLine();
        N=Integer.parseInt(str);
          
        mas = new int[N][];
        for(i=0; i<mas.length; i++)
            mas[i]= new int [N];
 
        i = 0;
        while((str=br.readLine()) != null) {
            int k = 0;
            j = 0;
            while((pos = str.indexOf(" ", k)) != -1) {
                mas[i][j++] = Integer.parseInt(str.substring(k, pos));
                k = pos+1;
            }
            pos = str.length();
            mas[i][j] = Integer.parseInt(str.substring(k, pos));
            i++;
        }
        br.close();
        System.out.println("Do sortirovki:");
        vuvod(mas);
        System.out.println("Posle sortirovki:");
        sort(mas);    
}
}
Пишет "Exception in thread "main" java.lang.NumberFormatException: For input string: "5 8 4 12 56 98 100 1 3 1 6 9 33 67" и указывает на строку с Integer.parseInt(). Наверное я опять чего-то не понимаю...
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
25.05.2011, 13:34
Цитата Сообщение от Alisson Посмотреть сообщение
Пишет "Exception in thread "main" java.lang.NumberFormatException: For input string: "5 8 4 12 56 98 100 1 3 1 6 9 33 67" и указывает на строку с Integer.parseInt(). Наверное я опять чего-то не понимаю...
RTFM пробовала?

Parses the string argument as a signed decimal integer. The characters in the string must all be decimal digits, except that the first character may be an ASCII minus sign '-' ('\u002D') to indicate a negative value.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.05.2011, 13:34
Помогаю со студенческими работами здесь

Метод .split()
Итак, помогите пожалуйста написать метод сплит, или скопипастьте мне его код, пожалуйста. Просто мне сказали не пользоваться сплитом, а...

Метод Split
Есть строка - &quot;Вася кит помидор деревня...&quot;-(обычное предложение вообщем) Как можно предложение &quot;рассклеить&quot; ? Понимаю что...

Метод Split
Хочу с помощью метода Split заполнить матрицу Math. Компилятор мне не дает , и получается откомпилировать только одномерный массив. Может...

Метод Split
Захотел сделать в кликере что то типо команды на деньги, ловит ошибку (catch) Код: try { ...

Метод Split
Ребята, я вообще не понимаю, как это реализовать? &quot;При помощи метода Split() разобрать исходную строку на слова в виде массива строк....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru