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

Создание интерактивной программы для работы с массивом Strings (без использования ArrayLists)

26.01.2016, 01:16. Показов 1298. Ответов 4

Студворк — интернет-сервис помощи студентам
Всем доброго вечера!

Столкнулся с очередной проблемой, а именно. Нужно создать интерактивную программу не используя ArrayLists, разрешено использовать только Scanner и Arrays.

Программа должна выглядеть таким образом:

How many names do you want to add?
4
I ve made for you list with 4 names.
Please, add 4 Names: Muller Neumann Bayer Maier

I ve saved it: Muller Neumann Bayer Maier

What do you want to do?
1 : name search
2 : new name add
3 : sort the list
4 : exit
5

Error, please type 1-4

What do you want to do?
1 : name search
2 : new name add
3 : sort the list
4 : exit
1

You want to find: Bayer
Your name have Index 2!

What do you want to do?
1 : name search
2 : new name add
3 : sort the list
4 : exit

1
You want to find: Riemann
Name is not in your Array

What do you want to do?
1 : name search
2 : new name add
3 : sort the list
4 : exit
2

You want to add name: Altbacher
Name added in your list: Muller Neumann Bayer Maier Altbacher

What do you want to do?
1 : name search
2 : new name add
3 : sort the list
4 : exit

3
sort: Altbacher Bayer Maier Müller Neumann

What do you want to do?
1 : name search
2 : new name add
3 : sort the list
4 : exit
4 Exit!

На первый взгляд простое задание, но без библиотек не так все просто. В данный момент столкнулся с некоторыми проблемами, описываю в комментах в коде:

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import java.util.Scanner;
 
public class Benutzerinteraktion {
 
    public static void main(String[] args) {
        int a;
 
        Scanner in = new Scanner(System.in);
        System.out
                .println("How many names do you want to add?   ");
        a = in.nextInt();
 
        String[] arr = new String[a + 2]; // создал специально побольше, чтобы потом можно было добавить
        System.out.println("I ve made for you list with  " + a // условие, использование только статический массивов
                + " names. ");
        System.out.println("Please, add " + a + " Names: ");
        for (int i = 0; i < arr.length; i++) {
 
            arr[i] = in.nextLine();
 
        }
 
        System.out.println("\n");
        System.out
                .println("I ve saved it:   ");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
 
        }
        System.out.println("\n");
        System.out.println("What do you want to do? ");
        System.out.println("1 : name search ");
        System.out.println("2 : new name add ");
        System.out.println("3 : sort the list    ");
        System.out.println("4 : exit ");
 
        int u1 = in.nextInt();
 
        if (u1 >= 5) {
            System.out.println("Error, please get 1-4");
            System.out.println("\n");
            System.out.println("What do you want to do? ");
                System.out.println("1 : name search ");
                    System.out.println("2 : new name add ");
                    System.out.println("3 : sort the list    ");
                System.out.println("4 : exit ");
 
        } else { //до этого момента все работает как нужно :)
 
            if (u1 == 1) {
 
                System.out.println("You want to find:  ");
                String su = in.nextLine();
 
                if (linSuche(arr, su) == -1) //здесь почему-то отказывается работать мой метод, и автоматом выбивает "элемент не найден"
 
                    System.out.println("Name is not in your Array!");
                else
                    System.out.println("Your name have Index: "
                            + linSuche(arr, su));
 
            }
 
            else {
 
                if (u1 == 2) {
                    System.out.println("You want to add name:    ");
                    String adw = in.nextLine();
                    String[] arr2 = { adw }; //создаю новый массив с одним элементом, чтобы соединить с первым
// сюда не успел прописать использование метода, который написан ниже
                }
 
            }
        }
    }
 
    public static int einfuegen(String[] arr, String[] arr2) {
 
        int[] array3 = new int[arr.length + arr2.length];
 
        int k = 0;
        for (int i = 0; i < arr.length; i++) {
            array3[k] = arr[i]; //здесь проблема, т.к. не могу соединить два массима
            k++;
        }
 
        for (int i = 0; i < arr2.length; i++) {
            array3[k] = arr2[i]; // и здесь. String не может быть как Int, но другого способа без библеотек я не знаю
            k++;
        }
 
        for (int i = 0; i < array3.length; i++) {
            System.out.print(array3[i] + " , ");
        }
 
    }
 
    public static int linSuche(String[] arr, String s) { //это мой отдельный метод поиска (не уверен, что линейный сюда подходит)
 
        for (int i = 0; i < arr.length; i++) {
 
            if (s == arr[i]) {
                return i;
            }
        }
 
        return -1;
 
    }
 
}
P.s. метод сортировки есть мною написанный для int массивов (Bubblesort или Insertion). Подскажите, пожалуйста в чем ошибки, завтра уже нужно с утра сдать Огромное спасибо!

Добавлено через 3 часа 35 минут
123

Добавлено через 9 минут
С программой вопрос решил
Как сделать бесконечный ввод с клавиатуры в моем коде?
Кратко о программе: интерактивная программа, сделанная не используя ArrayLists, разрешено использовать только Scanner и Arrays.

Программу написал, но остался главный вопрос, как можно сделать цикл бесконечным, без вывода ошибок? Чтобы использовать программу без перезапуска. Спасибо

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import java.util.Arrays;
import java.util.Scanner;
 
public class Benutzerinteraktion {
 
    public static void main(String[] args) {
        int a;
 
        Scanner in = new Scanner(System.in);
 
        System.out
                .println("Wie viele Namen möchtest Du in die Liste eintragen?  "); //сколько имен вы хотите добавить в список
        a = in.nextInt();
 
        String[] arr = new String[a + 1];
        System.out.println("Ich habe für Dich eine Liste mit " + a
                + " Einträgen angelegt. "); //добавлено .. имен
        System.out.println("Bitte " + a + " Namen eingeben: "); //введите .. имен
        for (int i = 0; i < arr.length; i++) {
 
            arr[i] = in.nextLine();
 
        }
 
        System.out.println("\n");
        System.out
                .println("Ich habe folgende Namen in der Liste gespeichert: "); //список сохранен
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
 
        }
        int qw = 0;
        while (qw < 100) { //ВОТ ЗДЕСЬ ПРОБЛЕМА
            System.out.println("\n");
            System.out.println("Was möchtest Du jetzt tun? "); //что вы хотите сделать
            System.out.println("1 : Namen suchen "); //поиск имени
            System.out.println("2 : neuen Namen einfügen "); //добавить имя
            System.out.println("3 : Liste sortieren  "); //сортировать массив
            System.out.println("4 : beenden  "); //выход из программы
 
            int u1 = in.nextInt();
            qw++;
 
            if (u1 >= 5) {
                System.out.println("Eingabe wurde nicht erkannt");
                System.out.println("\n");
                System.out.println("Was möchtest Du jetzt tun? ");
                System.out.println("1 : Namen suchen ");
                System.out.println("2 : neuen Namen einfügen ");
                System.out.println("3 : Liste sortieren  ");
                System.out.println("4 : beenden  ");
 
            } else {
 
                if (u1 == 1) {
                    Scanner line = new Scanner(System.in);
                    System.out.println("Gesuchten Namen eingeben: ");
                    String su = line.nextLine();
 
                    int asd = Arrays.asList(arr).indexOf(su);
                    System.out.println("Name am Index " + asd + " gefunden!");
                    System.out
                            .println("Wenn Sie -1 sehen, dann ist Name nicht gefunden!");
                    line.close();
 
                } else {
                    Scanner line = new Scanner(System.in);
                    if (u1 == 2) {
                        System.out.println("Einzufügenden Namen eingeben:   ");
                        String adw = line.nextLine();
 
                        String[] arr2 = { adw };
                        {
                            String[] arr3 = new String[arr.length + arr2.length];
 
                            System.arraycopy(arr, 0, arr3, 0, arr.length);
                            System.arraycopy(arr2, 0, arr3, arr.length,
                                    arr2.length);
                            System.out
                                    .println("Name wurde in die Liste eingefügt: ");
                            for (int i = 0; i < arr3.length; i++) {
 
                                System.out.print(arr3[i] + " ");
 
                                line.close();
                            }
                            System.out.print("\n");
                            System.out.print("Sortiert: ");
                            sort(arr3);
                        }
 
                    } else {
 
                        if (u1 == 3) {
                            sort(arr);
 
                        }
 
                        else {
 
                            if (u1 == 4) {
 
                                System.out.println("Bis zum nächsten Mal!");
 
                            }
 
                        }
 
                    }
                }
 
            }
        }
    }
 
    public static void sort(String[] werte) {
        Arrays.sort(werte);
        for (int i = 0; i < werte.length; i++) {
            System.out.print(werte[i] + "  ");
        }
    }
 
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.01.2016, 01:16
Ответы с готовыми решениями:

Создание программы без использования Microsoft .NET Framework
Всем привет! Подскажите, можно ли в VB2008 создавать программы без использования Microsoft .NET Framework????

Создание метода для работы с массивом
Помогите создать функцию, которая будет убирать несколько первых элементов массива, после чего с помощью свойства prototype эта функция...

Создать класс для работы с односвязным списком (без использования коллекций)
Задание: Создать класс для работы с односвязным списком (без использования коллекций). Класс должен включать конструктор с один параметром...

4
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
26.01.2016, 01:34
Vipcars, много букв и не по существу =) Вникать лень
Цитата Сообщение от Vipcars Посмотреть сообщение
разрешено использовать только Scanner и Arrays
В Arrays, насколько я помню, есть метод который который копирует один массив в другой. Создаете больший массив, когда заполняется предыдущий, и копируйте в него.
Цитата Сообщение от Vipcars Посмотреть сообщение
как можно сделать цикл бесконечным
Java
1
2
while(true){
}
1
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 22
26.01.2016, 01:58  [ТС]
reisal78, да там вникать не надо) сделал бесконечный while, вот только когда второй раз запускается вылетает

java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Benutzerinteraktion.main(Benutzerinterak tion.java:41)
0
 Аватар для reisal78
944 / 687 / 230
Регистрация: 28.04.2013
Сообщений: 1,925
26.01.2016, 02:34
Лучший ответ Сообщение было отмечено Vipcars как решение

Решение

Vipcars,

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
public class Benutzerinteraktion {
 
    public static void main(String[] args) {
        int a;
 
        Scanner line = new Scanner(System.in);
 
        System.out
                .println("Wie viele Namen mГ¶chtest Du in die Liste eintragen?  "); //сколько имен вы хотите добавить в список
        a = line.nextInt();
 
        String[] arr = new String[a + 1];
        System.out.println("Ich habe fГјr Dich eine Liste mit " + a
                + " EintrГ¤gen angelegt. "); //добавлено .. имен
        System.out.println("Bitte " + a + " Namen eingeben: "); //введите .. имен
        for (int i = 0; i < arr.length; i++) {
 
            arr[i] = line.nextLine();
 
        }
 
        System.out.println("\n");
        System.out
                .println("Ich habe folgende Namen in der Liste gespeichert: "); //список сохранен
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
 
        }
        int qw = 0;
        while (qw < 100) { //ВОТ ЗДЕСЬ ПРОБЛЕМА
            System.out.println("\n");
            System.out.println("Was mГ¶chtest Du jetzt tun? "); //что вы хотите сделать
            System.out.println("1 : Namen suchen "); //поиск имени
            System.out.println("2 : neuen Namen einfГјgen "); //добавить имя
            System.out.println("3 : Liste sortieren  "); //сортировать массив
            System.out.println("4 : beenden  "); //выход из программы
 
            int u1 = line.nextInt();
            qw++;
 
            if (u1 >= 5) {
                System.out.println("Eingabe wurde nicht erkannt");
                System.out.println("\n");
                System.out.println("Was mГ¶chtest Du jetzt tun? ");
                System.out.println("1 : Namen suchen ");
                System.out.println("2 : neuen Namen einfГјgen ");
                System.out.println("3 : Liste sortieren  ");
                System.out.println("4 : beenden  ");
 
            } else {
 
                if (u1 == 1) {
                    System.out.println("Gesuchten Namen eingeben: ");
                    String su = line.nextLine();
 
                    int asd = Arrays.asList(arr).indexOf(su);
                    System.out.println("Name am Index " + asd + " gefunden!");
                    System.out
                            .println("Wenn Sie -1 sehen, dann ist Name nicht gefunden!");
                } else {
 
                    if (u1 == 2) {
                        System.out.println("EinzufГјgenden Namen eingeben:   ");
                        String adw = line.nextLine();
 
                        String[] arr2 = { adw };
                        {
                            String[] arr3 = new String[arr.length + arr2.length];
 
                            System.arraycopy(arr, 0, arr3, 0, arr.length);
                            System.arraycopy(arr2, 0, arr3, arr.length,
                                    arr2.length);
                            System.out
                                    .println("Name wurde in die Liste eingefГјgt: ");
                            for (int i = 0; i < arr3.length; i++) {
 
                                System.out.print(arr3[i] + " ");
 
                            }
                            System.out.print("\n");
                            System.out.print("Sortiert: ");
                            sort(arr3);
                        }
 
                    } else {
 
                        if (u1 == 3) {
                            sort(arr);
 
                        }
 
                        else {
 
                            if (u1 == 4) {
 
                                System.out.println("Bis zum nГ¤chsten Mal!");
 
                            }
 
                        }
 
                    }
                }
 
            }
        }
    }
 
    public static void sort(String[] werte) {
        Arrays.sort(werte);
        for (int i = 0; i < werte.length; i++) {
            System.out.print(werte[i] + "  ");
        }
    }
 
}
1
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 22
26.01.2016, 03:23  [ТС]
reisal78, большое спасибо за помощь, я в данный момент тоже починил свой код, к сожалению Ваш только сейчас увидел) выкладываю, возможно кому-то поможет.

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import java.util.Arrays;
import java.util.Scanner;
 
public class Benutzerinteraktion {
 
    public static void main(String[] args) {
        int a;
 
        Scanner in = new Scanner(System.in);
        Scanner line = new Scanner(System.in);
        System.out
                .println("Wie viele Namen möchtest Du in die Liste eintragen?  ");
        a = in.nextInt();
 
        String[] arr = new String[a + 1];
        System.out.println("Ich habe für Dich eine Liste mit " + a
                + " Einträgen angelegt. ");
        System.out.println("Bitte " + a + " Namen eingeben: ");
        for (int i = 0; i < arr.length; i++) {
 
            arr[i] = in.nextLine();
 
        }
 
        System.out.println("\n");
        System.out
                .println("Ich habe folgende Namen in der Liste gespeichert: ");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
 
        }
 
        while (true) {
            System.out.println("\n");
            System.out.println("Was möchtest Du jetzt tun? ");
            System.out.println("1 : Namen suchen ");
            System.out.println("2 : neuen Namen einfügen ");
            System.out.println("3 : Liste sortieren  ");
            System.out.println("4 : beenden  ");
 
            int u1 = in.nextInt();
 
            if (u1 >= 5) {
                System.out.println("Eingabe wurde nicht erkannt");
                System.out.println("\n");
 
            } else {
 
                if (u1 == 1) {
 
                    System.out.println("Gesuchten Namen eingeben: ");
                    String su = line.nextLine();
 
                    int asd = Arrays.asList(arr).indexOf(su);
                    System.out.println("Name am Index " + asd + " gefunden!");
                    System.out
                            .println("Wenn Sie -1 sehen, dann ist Name nicht gefunden!");
 
                } else {
 
                    if (u1 == 2) {
                        System.out.println("Einzufügenden Namen eingeben:   ");
                        String adw = line.nextLine();
 
                        String[] arr2 = { adw };
                        {
                            String[] arr3 = new String[arr.length + arr2.length];
 
                            System.arraycopy(arr, 0, arr3, 0, arr.length);
                            System.arraycopy(arr2, 0, arr3, arr.length,
                                    arr2.length);
                            System.out
                                    .println("Name wurde in die Liste eingefügt: ");
                            for (int i = 0; i < arr3.length; i++) {
 
                                System.out.print(arr3[i] + " ");
 
                            }
                            System.out.print("\n");
                            System.out.print("Die Liste wurde sortiert: ");
                            sort(arr3);
                        }
 
                    } else {
 
                        if (u1 == 3) {
                            System.out.print("Die Liste wurde sortiert: ");
                            sort(arr);
 
                        }
 
                        else {
 
                            if (u1 == 4) {
 
                                System.out.println("Bis zum nächsten Mal!");
 
                            }
 
                        }
 
                    }
                }
 
            }
 
        }
    }
 
    public static void sort(String[] werte) {
        Arrays.sort(werte);
        for (int i = 0; i < werte.length; i++) {
            System.out.print(werte[i] + "  ");
        }
    }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.01.2016, 03:23
Помогаю со студенческими работами здесь

Построить плотность распределения вероятности для этой программы без использования hist
построить плотность распределения вероятности для этой программы без использования hist.максимальный и минимальный интервал, потом разбить...

Подскажите редактор для интерактивной работы с разрабатываемым сайтом
Привет пишу asp.net приложение на visual studio 2017 подскажите можно ли подключить какой либо редактор - к полученному сайту ...

Создание программы с оконным интерфейсом сделать задание как задачу с массивом и использовать stringGrid для отображения
Вычислить среднее арифметическое элементов двумерного массива случайно заполненных из вещественных чисел. Массив имеет 8 столбцов и 3 строк

Разработка программы для работы с файлом без типа
1)Создать файл, компоненты (количество &lt;=10) которого являются слова. После создания файла значения его компонент с четными номерами...

Разработка программы для работы с файлом без типа
СРОЧНО!!! Помогите пожалуйста.... оч прошу... Создать файл, компоненты (количество &lt;=10) которого являются вещественными числами....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru