С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 30.01.2019
Сообщений: 20

Удалить начальные и конечные пустые символы в массиве char[]

08.12.2019, 21:38. Показов 2112. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите написать программу, которая будет удалять начальные и конечные пустые символы в массиве char[]
Алгоритм:
1. требуется создать массив размера 20 и заполнить его через объект класса Scanner символами, при этом допускается заполнение ячеек пробелами
2. требуется найти серию символов из введенного массива начинающиеся не с символа пробела до конца массива, либо до начала серии пробелов.

т.е. если например был введен массив символов следующего содержания:

' ', ' ', ' ', 'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!', ' ', ' ', ' ', ' ', ' '

то в этом массиве нужно выделить серию символов и распечатать

'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd', '!'

Пошаговый алгоритм:
a. создать переменную-счетчик countSpacesLeft=0
b. запустить цикл while (i<initalCharArray.length)
c. на каждую итерацию сравнивать отличается ли символ в ячейке от пробела. Если не отличается, то увеличивать счетчик countSpacesLeft на один, если отличается, то считать, что уже предложение начато и прекратить увеличивать счетчик.

Аналогичный алгоритм можно использовать для подсчета символов-пробелов начиная справа массива, используя переменную countSpacesRight.

Итоговый массив должен быть размера int newArraySize = initialCharArray.length-countSpacesLeft-countSpacesRight.

3. затем найденный набор символов нужно перенести в новый массив char[] размером равный выделенному массиву, т.е. в нашем примере выше выделенный массив был бы равен 12.

4. распечатать вновь созданный массив char[] на экран
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.12.2019, 21:38
Ответы с готовыми решениями:

Какую версию Java поддерживает .Net Java# И какую VS6.0 Java++ ?
Какую версию Java поддерживает .Net Java# И какую VS6.0 Java++ ? Ответье, плиз, новичку, по MSDN я не понятно, это исключительно...

При работе JVM обвалвается java c кодом Java Result 1073807364.
При работе JVM обвалвается java c кодом Java Result 1073807364. Если кто-нибудь знает, помогите пожалуйста.

Error:(10, 42) java: incompatible types: int cannot be converted to java.math.BigDecimal
import java.math.*; import java.util.Scanner; public class Factorial { public static void main(String args) { Scanner...

4
 Аватар для sdasdaw
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
08.12.2019, 21:42
H1ndo, У вас даже алгоритм расписан в чем проблема?
0
0 / 0 / 0
Регистрация: 30.01.2019
Сообщений: 20
08.12.2019, 21:53  [ТС]
Неполучаеться у меня
0
54 / 45 / 18
Регистрация: 09.02.2015
Сообщений: 165
09.12.2019, 08:47
Лучший ответ Сообщение было отмечено H1ndo как решение

Решение

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
import java.util.Arrays;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        char[] initialCharArray = new char[20];
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < initialCharArray.length; i++) {
            initialCharArray[i] = sc.next().charAt(0);
        }
        sc.close();
 
        int countSpacesLeft = -1;
        while (initialCharArray[++countSpacesLeft] == ' '){
        }
 
        int countSpacesRight = initialCharArray.length;
        while (initialCharArray[--countSpacesRight] == ' '){
        }
 
        char[] newArraySize = Arrays.copyOfRange(initialCharArray, countSpacesLeft, countSpacesRight + 1);
        System.out.println(Arrays.toString(newArraySize));
    }
}
Добавлено через 7 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String tmp = sc.nextLine();
        while (tmp.length() > 20){
            System.out.println("Invalid string length, try again.");
            tmp = sc.nextLine();
        }
 
        tmp = tmp.trim();
        char[] newArraySize = tmp.toCharArray();
        System.out.println(Arrays.toString(newArraySize));
    }
}
1
 Аватар для Aviz__
2736 / 2046 / 506
Регистрация: 17.02.2014
Сообщений: 9,462
09.12.2019, 09:53
H1ndo,
Java
1
2
3
4
5
public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String ss = scanner.nextLine().replaceAll("\\s+"," ").trim();
        System.out.println(ss);
    }
rezult
Кликните здесь для просмотра всего текста

Hello H1
Hello H
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.12.2019, 09:53
Помогаю со студенческими работами здесь

Посоветуйте примеры кода по Java. Теория прочтена, но с языком Java не знакома
Или может кто может дать готовый код. В теории вроде бы не очень сложно. :cry: 1.Напишите процедуру, которая по заданному сообщению...

Актуально ли изучать java сейчас по книге, где примеры в java 5?
Книга &quot;Изучаем Java&quot;Берт Бейтс, Кэтти Сьерра .До этого ничего не читал по java

Хочу стать Java программистом, здесь есть Java программисты?
Здравствуйте, я хочу стать Ява программистом, если здесь есть Ява программисты, пж подскажите плюсы и мунусы профессии Ява программиста,...

Какие шаги предпринять для овладения java и какую среду java посоветуете?
Пока сть опыт по Visual С, Basic; Borland Delphi, CBuilder. Хочется и в java разбираться.

Вывести на экран текст: полное имя файла java.exe из установленного пакета java
Я тока недавно начал учить этот язык. Подскажите как это делается или приведите код к примеру. Выведи на экран текст: полное имя файла...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Изучаю 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. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru