Czy ktoś może zaproponować metodę zapisania łańcucha typu Mutli-Line na konsoli systemowej i wstawienia tego bloku tekstu? Szukam czegoś stosunkowo lekkiego, ponieważ jest używany tylko do wyświetlania pomocy dla programu wiersza poleceń.Jak wcięcie wielowierszowego akapitu zapisywanego na konsoli w java
Odpowiedz
UWAGA: Opisane poniżej podejście nie spełnia zaktualizowanych wymagań opisanych przez @BillMan w komentarzach do pytania. Ten nie będzie automatycznie owijał linii, które są dłuższe niż długość linii konsoli - używaj tego tylko, jeśli zawijanie nie jest problemem.
Jako prosty opcji, można użyć
String.replaceAll()
następująco: String output = <your string here>
String indented = output.replaceAll("(?m)^", "\t");
Jeśli jesteś zaznajomiony z wyrażeń regularnych Java, działa w następujący sposób:
(?m)
włącza tryb multilinii. Oznacza to, że każda linia woutput
jest traktowana indywidualnie, zamiast traktowaniaoutput
jako pojedynczej linii (która jest domyślna).^
to wyrażenie regularne odpowiadające początkowi każdego wiersza.\t
powoduje zastąpienie każdego dopasowania poprzedniego wyrażenia regularnego (tj. Początek każdej linii) znakiem tabulacji.
Jako przykład, następujący kod:
String output = "foo\nbar\nbaz\n"
String indented = output.replaceAll("(?m)^", "\t");
System.out.println(indented);
Wytwarza to wyjście:
foo bar baz
Nie sądzę, że to jest to, czego szuka OP, jako linii, które są zbyt długie są zawijane przez konsolę, a nie wcięte. Myślę, że potrzebna jest tutaj metoda, która a) zawija się do N-e-znaku (np. 80 znaków), ale dzieli się na słowa i b) wcina każdą linię, nawet te, które zostały zawinięte. – joelittlejohn
@joelittlejohn: masz rację - zaktualizowane wymagania (dodane jako komentarze * po * ostatnie spojrzenie na to pytanie) nie są spełnione przez podejście, które opisuję. Mimo to nadal może być przydatna dla osób o podobnych wymaganiach. Dodałem zastrzeżenie do tego efektu na górze. Dziękuję za zwrócenie mi tej uwagi. – Mac
- 1. Wcięcie wielowierszowego wyjścia w skrypcie powłoki
- 2. wielowierszowego JAVA_OPTS w setenv.sh
- 3. Kolory w konsoli Java
- 4. Wyrównanie akapitu na środku strony
- 5. przypisanie wielowierszowego w bash
- 6. Broszura do powrotu karetki w java na windows na konsoli
- 7. Konwersja programu konsoli Java na aplikację Webapp
- 8. Wcięcie plików źródłowych Java za pomocą Eclipse
- 9. Jak automatycznie ustawić szerokość akapitu w CSS?
- 10. Aplikacja konsoli Java?
- 11. IOS jak obcinać za pomocą elipsy ostatnią widoczną linię akapitu?
- 12. wielowierszowego ciąg z maszynopisu - Angular2
- 13. prawidłowe wcięcie w IntelliJ
- 14. Jak dodać link czytaj więcej na końcu akapitu?
- 15. Wcięcie JSON w PHP
- 16. wielowierszowego bash komentarz etykieta (# +)
- 17. ANTLR: Wcięcie przestrzeni?
- 18. Wcięcie CSS w emacs
- 19. Pokaż pierwszą linię akapitu
- 20. Wcięcie wrzeciona
- 21. Jak wyłączyć automatyczne wcięcie na linii nowej w trybie js2?
- 22. Jak znaleźć numer strony dla akapitu Word?
- 23. błąd wyświetlacz wielowierszowego NSTokenField
- 24. Jak pisać na konsoli w fasm?
- 25. Maksymalna liczba znaków w znaczniku div/akapitu
- 26. Jak inteligentnie zmienić wcięcie Clojure w Emacs?
- 27. Wcięcie w stylu "Lisp Style" na językach nawiasów klamrowych
- 28. jak naprawić rozmiar wielowierszowego tekstu edycji
- 29. Jak odczytać ciągi ze skanera w konsoli Aplikacja JAVA?
- 30. wstaw obraz w określonym punkcie akapitu
Czy masz ciąg, który zawiera linebreaks, czy chcesz automatycznego zawijania, czy masz po prostu wiele linii i chcesz je wyrównać w pewnym formacie tabelarycznym? W skrócie: proszę podać przykład danych wejściowych i pożądanych wyników. – Cephalopod
@Arian. Chciałbym automatycznego owijania. Coś podobnego do sposobu formatowania stron man. Miałem nadzieję na coś lekkiego, ale może jakaś forma szablonu języka jest jedyną drogą. – BillMan
Co powiesz na dzielenie ciągu na spacje i wstawianie łamania linii, gdy słowo przekracza szerokość linii? – Cephalopod