Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
3 / 3 / 1
Регистрация: 07.10.2012
Сообщений: 228
1

Поменять порядок слов на обратный

15.08.2013, 16:18. Показов 5652. Ответов 9
Метки нет (Все метки)

Нужно считать с консоли символы. Выделить слова и поменять порядок слов на обратный.

Можно ли сделать так - написать регулярное выражение на одно слово, потом эти слова запихнуть в коллекцию (ArrayList подойдет?) и каким-нибудь макаром, работая с этой коллекцией, поменять порядок слов.
Можно ли так сделать? или есть какой-нибудь другой лучший способ?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.08.2013, 16:18
Ответы с готовыми решениями:

Поменять порядок цифр числа n на обратный
Поменять порядок цифр числа n на обратный. Помогите сделать так чтобы работала с...

Как поменять порядок элементов в SortedSet?
Привет! Мне нужно зареверсить сэт. Есть: {1-А, 2-B, 3-C} Должно стать: {3-C, 2-B, 1-A} ...

Поменять порядок слов в предложении на обратный
Ну вопрос то может и банальный, но что то я совсем запутался. в общем задача: Значит нужно...

Поменять порядок слов в тексте на обратный
Добрый день. Получил след. задание: Дана строка текста, длиной не более 100 символов. В...

9
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
15.08.2013, 17:48 2
было: мама мыла раму, не очень
стало: очень не, раму мыла мама
знаки препинания как должны быть расставлены в итоге? со словами то понятно

Добавлено через 6 минут
ну вот например если разделитель только пробел. Так, для наглядности, может дальше поймете сами что хотите
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import java.util.Scanner;
 
public class MainClazz {
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String text = sc.nextLine();
        String outText = "";
        String[] array = text.split(" ");
        for (int i = array.length - 1; i >= 0; i--) {
            outText += array[i] + " ";
        }
        
        System.out.println(outText);
        
    }
}
Добавлено через 39 минут
а вот как просили вы с Regexp'ами, ArrayList'ами, Шлю..ой
только слова, без любых других знаков, работает с англ и рус словами
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
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class MainClazz {
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String text = sc.nextLine();
        
        String regexp = "([а-яА-Я]|[a-zA-Z])+";
        Pattern pattern = Pattern.compile(regexp);
        Matcher matcher = pattern.matcher(text);
        
        List<String> list = new ArrayList<String>();
        while (matcher.find()) {
            list.add(matcher.group());
        }
 
        StringBuilder sb = new StringBuilder();
        for (int i = list.size() - 1; i >= 0; i--) {
            sb.append(list.get(i) + " ");
        }
        
        System.out.println(sb.toString().trim());
    }
}
1
любитель покушать
686 / 638 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
15.08.2013, 17:55 3
Цитата Сообщение от tankomaz Посмотреть сообщение
Java
1
outText += array[i] + " ";
не делай так больше, пожалуйста!
1
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
15.08.2013, 18:24 4
Цитата Сообщение от Севак Посмотреть сообщение
не делай так больше, пожалуйста!
ок, тут не отрицаю что идея "не ахти". Какой вариант предложите?
кстати это по поводу конкатенации строк либо про " "?
1
любитель покушать
686 / 638 / 248
Регистрация: 25.09.2011
Сообщений: 1,313
15.08.2013, 18:26 5
tankomaz, по поводу конкатенации, лучше создать стрингбилдер и аппендить в него строки с пробелами, во втором варианте кстати так и поступили )
0
tankomaz
15.08.2013, 18:32
  #6

Не по теме:

аа, ну это я делал осознано, сам себя ругал и делал :) я в курсе про затраты и пересоздание объектов, но все-равно за замечание спасибо)

1
2582 / 2255 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
16.08.2013, 00:16 7
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
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
 
/**
 * @author mutagen
 */
public class ReverseWords {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        Stack<String> stack = new Stack<>();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        while (st.hasMoreTokens()) {
            stack.push(st.nextToken());
        }
        while (!stack.empty()) {
            System.out.println(stack.pop());
        }
    }
}
1
3 / 3 / 1
Регистрация: 07.10.2012
Сообщений: 228
16.08.2013, 08:18  [ТС] 8
Всем большое спасибо. А со знаками препинания что делать - сама не знаю, не сказано
0
3 / 3 / 1
Регистрация: 07.10.2012
Сообщений: 228
17.08.2013, 18:47  [ТС] 9
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Stack<String> stack = new Stack<>();
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            StringTokenizer st = null;
            
            try {
                st = new StringTokenizer(br.readLine());
            } 
            catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            while (st.hasMoreTokens()) {
                stack.push(st.nextToken());
            }
            while (!stack.empty()) {
                System.out.print(stack.pop() + " ");
            }
Не всегда с запятыми лады почему-то
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11031 / 6983 / 1651
Регистрация: 25.07.2009
Сообщений: 12,728
17.08.2013, 21:54 10
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
package easybudda.examples.printreversedwords;
 
import java.util.*;
 
public class ReversedWords {
 
    static void printReversedWords(StringTokenizer tok) {
        if ( tok.hasMoreElements() ) {
            String word = tok.nextToken();
            printReversedWords(tok);
            System.out.print(word + " ");
        }
    }
    
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        
        while ( true ) {
            System.out.print("String: ");
            String str = scan.nextLine();
            
            if ( str.isEmpty() )
                break;
            
            System.out.print("Result: ");
            printReversedWords(new StringTokenizer(str));
            System.out.println();
        }
    }
}
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.08.2013, 21:54

Поменять порядок слов в предложениях на обратный
У меня вот такая проблема- программа которая меняет порядок слов в предложениях на обратный из...

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

Поменять порядок слов в строках на обратный в текстовом файле
Была задача поменять порядок строк изначально(прикладываю реализацию). Теперь преподаватель просит...

Вводится текст, между словами пробелы, поменять порядок слов на обратный
вводится текст, между словами пробелы, поменять порядок слов на обратный


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.