Обратный Java полный документ

1

Я использовал обратную строку, но теперь нужен окончательный документ - это принцип, и наоборот:

Hello
Bye

в

Bye
hello

и не:

olleH
eyB

Как я это делаю?

Это мой источник:

public static void main(String[] args) {

    if (args.length != 1) {
        System.err.println("Sintaxis incorrecta, introduzca el nombre del fichero");
        System.exit(1);
    }

    BufferedReader br = null;

    try {
        br = new BufferedReader(new FileReader(args[0]));
        String s;

        try {
            while ((s = br.readLine()) != null) {
                StringBuilder reverse = new StringBuilder(s);
                String sCadenaInvertida = reverse.reverse().toString();
                System.out.println(sCadenaInvertida);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}

Благодарю!!

  • 2
    Пожалуйста, перефразируйте, but now need the final document is the principle, and vice versa: Это не имеет смысла.
  • 0
    разбить на слова, перевернуть коллекцию, объединить, используя пробел
Показать ещё 3 комментария
Теги:
string
bufferedreader
reverse
stringbuilder

4 ответа

2

Просто поместите все в ArrayList и используйте Collections.reverse http://www.java2s.com/Code/Java/Collections-Data-Structure/ReverseorderofallelementsofJavaArrayList.htm

псевдокод:

    ArrayList<String> arrayList = new ArrayList<>();
    arrayList.add("Hello");
    arrayList.add("Bye");

    Collections.reverse(arrayList);
    System.out.println(arrayList);
  • 1
    +1 за коллекцию!
  • 0
    Это сделало бы только строки, а не слова
Показать ещё 5 комментариев
1

Добавьте элементы в массив (сначала сначала подайте), затем переместите массив в обратном порядке

for (into I = array.length; i >= 0; i--) {
    //print array[i]
}

В качестве альтернативы вы можете использовать ArrayList, если вы не знаете количество строк в документе

1
ArrayList<String> theWords= new ArrayList<String>();
while ((s = br.readLine()) != null) {
            //split line into words
            String[] parts = s.split("\\s+"):
            //for each word append to arraylist
            for(String s : parts)
            {
                 theWords.append(s);
            } //end for loop
 } //end while loop

// iterate array, from size-1 to 0
int theWordsSize = theWords.size()--;
for(int i= theWordsSize; i >= 0; i--)
{
     System.out.println(theWords.get(i));
 } //end for loop
0

вот ответ, Это было легко:

открытый класс Reverse2 {

public static void main(String[] args) {



        if(args.length != 1){
            System.err.println("Sintaxis incorrecta, introduzca el nombre del fichero");
            System.exit(1);
        }

        BufferedReader br = null;


        try {
            br = new BufferedReader(new FileReader(args[0]));

            ArrayList<String> lista = new ArrayList<String>();
            String s;

            try {
                while((s=br.readLine()) != null){
                    lista.add(s);

                }

                for(int i= lista.size()-1;i>=0;i--){
                    System.out.println(lista.get(i));
                }
            } catch (IOException e) {
                e.printStackTrace();
            }



        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }





    }

}

спасибо за все возможные решения

Ещё вопросы

Сообщество Overcoder
Наверх
Меню