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

как создать массив новых имён пользователя чата?

05.06.2015, 16:51. Показов 1232. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть текстовый документ, в котором находится диалог из чата:


[01:27] <GatoLoko^> hi
=== blind|AFK is now known as blind
[01:27] <makelele> linuxbomb: thanks i will try that,although your second option sounds better, this ATI card is causing me grief
=== Evanescent is now known as GhostInTheMachin
[02:13] <Madpilot> leojstewart, heh
[02:13] <adrums20> hello everyone
=== GhostInTheMachin is now known as Evanescent

"===" -- символ, предшествующий смене имени.
как создать массив новых имён для каждого пользователя?

должны быть отдельные массивы новых имён (даже если пользователь меняет на своё старое имя) для каждого отдельного пользователя. например, если маша поменяла имя на катю, потом снова на машу, потом на дашу, потом на лизу, то массив должен выглядеть так : пользователь маша известен также как: {катя, маша, даша, лиза}. для всех других пользователей, которые меняют имена, должны быть созданы такие же отдельные массивы со списком всех новых имён.


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
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
 
public class ChatReader {
 
    /**
     * The filename of the chat log to be read.
     */
    private String fileName;
 
    /**
     * Constructor that takes the path to a chat log 
     * file as a parameter. 
     * 
     * @param fileName Path to the chat log file.
     */
    public ChatReader(String fileName) {
        this.fileName = fileName;
    }
 
    /**
     * Reads the file and returns an array of 
     * {@link String}s, where each element in the array 
     * represents a line in the document.
     * 
     * @return An array of Strings representing the lines of 
     * the document.
     */
    public String[] getMessages() {
        try {
            // path to the chat log file
            Path p = Paths.get(this.fileName);
            // read all lines and store them in a list
            List<String> lines = Files.readAllLines(p, Charset.forName("US-ASCII"));
            // return all messages in a String[]
            String[] messages = 
                    lines.toArray(new String[lines.size()]);
            return messages;
        } catch (IOException e) {
            System.err.println("Couldn't read " + this.fileName + "\n Did you give me the correct path?");
        }
        return new String[]{};
    }
 
}
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
import java.io.File;
import java.nio.file.Paths;
import java.nio.file.Path;
 
public class Main {
  
  public static void main(String[] args) {
    
    // declare directory of the file that shall be read
    Path inpath =  Paths.get("D:/Java/...") ;
    
    // add file to be read to path
    Path pchat = inpath.resolve("ubuntu_chatlog.txt");
    
    // create chat reader for the input file (argument must be a string!)
    ChatReader reader = new ChatReader(pchat.toString());
    
    // read the lines from the input file into a string array
    String[] messages = reader.getMessages();
    
    // display the number of messages on the screen
    System.out.println("The array contains " + messages.length+1 + " messages.");
 
// declare an output directory
    Path outpath = inpath;
    
    // define one or more output files
    Path pout1 = outpath.resolve("output1.txt");
    
    // define (buffered) writer(s) for output of data to pout1,.. 
    MessageWriter writer = new MessageWriter(pout1.toString());
    
 
    
    
    
    
  }
  
  
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.06.2015, 16:51
Ответы с готовыми решениями:

Как удалить неактивного пользователя из чата?
Решил сделать чат. И возникла проблема как удалить пользователя который скажем не активет 10 минут Заранее благодарен за ответ

Как выводить текст чата и юзерпик пользователя
Тип проекта - WPF. Клиентское приложение принимает определённое сообщение, которое может быть обычным текстом от пользователя или системное...

В начале учебного года в класс поступили два новых ученика. Как получить аналогичный массив, учитывающий рост новых учеников
Добрый вечер. Подскажите, как решить задачку. Условие. Данные о росте 25 учеников класса, упорядоченные по убыванию, записаны в...

3
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
05.06.2015, 17:21
почему массив, а не коллекцию, например Мап?
0
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 6
05.06.2015, 17:22  [ТС]
ничего не поделаешь, такое условие.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
05.06.2015, 17:27
как вариант
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
public class UserNames {
    public static void main(String[] args) {
        User user = new User("Маша");
        user.setName("Даша");
        user.setName("Гриша");
        user.setName("Вася");
        user.setName("Маша");
        user.setName("Лиза");
 
        System.out.println("Текущее имя: " + user.getName());
        System.out.println("Все имена: " + user.getNamesHistory());
    }
}
 
class User {
    private String name;
    private Set<String> names = new HashSet<>();
 
    User(String name) {
        this.name = name;
    }
 
    void setName(String name) {
        this.name = name;
        names.add(name);
    }
 
    String getName() {
        return name;
    }
 
    ArrayList<String> getNamesHistory() {
        return new ArrayList<>(names);
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.06.2015, 17:27
Помогаю со студенческими работами здесь

Создать массив имен
Всем добрый день.:) Подскажите пожалуйста, я создала массив $name =array ('Саня', 'Алексей','Вася', 'Витя', 'Вася', 'Иван', 'Вася',...

Задан массив из k символов. Создать два новых массива
Ребят! Помогите пожалуйста Задан массив из k символов. Создать два новых массива: в первый перенести все цифры из исходного массива, во...

Ввести массив и на его основе создать два новых массива
Ввести массив и на его основе создать два новых массива: первый из элементов с четными индексами, второй - из элементов, кратных 5. ...

Создание новых имён для файлов
Столкнулся с задачей и не могу решить её. Есть несколько текстовых файлов, допустим, 10 штук. У них похожие имена, вроде &quot;1...

Создать новый массив, учитывающий рост новых учеников и перезаписать исходный файл
Парни (а может и дамы) выручайте, кто сможет, помогите кодом! Завтра сдавать, а я не успеваю.... Занести из файла в массив информацию...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru