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

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

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

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


[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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.06.2015, 16:51
Ответы с готовыми решениями:

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

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

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

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

3
Автоматизируй это!
Эксперт Python
7107 / 4610 / 1215
Регистрация: 30.03.2015
Сообщений: 13,236
Записей в блоге: 29
05.06.2015, 17:21 2
почему массив, а не коллекцию, например Мап?
0
0 / 0 / 0
Регистрация: 05.06.2015
Сообщений: 6
05.06.2015, 17:22  [ТС] 3
ничего не поделаешь, такое условие.
0
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
05.06.2015, 17:27 4
как вариант
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
05.06.2015, 17:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.06.2015, 17:27
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru