Делаю консольное приложение, которое получает на вход стороку и фильит, а затем выводит по заданному фильтру соответствующие слова. При двойном клике на jar открывается консоль, и выполняется приложение. Проблема в том что при выводе результата в кириллице получаеются кракозябры. Вот пример работы приложения. Помогите исправить:
public class Grep {
private String inputString;
private String filter;
public Grep(String inputString, String filter) {
this.inputString = inputString;
this.filter = filter;
}
public String getInputString() {
return inputString;
}
public void setInputString(String inputString) {
this.inputString = inputString;
}
public String getFilter() {
return filter;
}
public void setFilter(String filter) {
this.filter = filter;
}
public void grep() {
if(getInputString().isEmpty() || getFilter().isEmpty()) {
System.out.println("Введите данные!");
} else {
Stream<String> stringStream = Stream.of(getInputString().split("[\\p{Punct}\\s]+"));
String result = stringStream.filter(s -> s.contains(getFilter()))
.map(String::toLowerCase)
.collect(Collectors.joining(", "));
if(result.isEmpty()) {
System.out.println("Совпадений не найдено!");
} else System.out.println(result);
}
} }
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
final String STOP = "stop";
if (args.length == 0) {
Process p = Runtime.getRuntime().exec("cmd.exe /c start java -jar " +
(new File(Main.class.getProtectionDomain().getCodeSource().getLocation().getPath())).getAbsolutePath() + " cmd");
} else {
while (true) {
Scanner scanner = new Scanner(System.in);
System.out.println("Введите слова: ");
var inputString = scanner.nextLine();
System.out.println("Введите фильтр: ");
var filter = scanner.nextLine().toLowerCase();
Grep grep = new Grep(inputString, filter);
System.out.print("Результат применения фильтра: ");
grep.grep();
System.out.println("Если хотите продолжить нажмите любую клавишу. Введите \"stop\" для выхода.");
if(scanner.nextLine().equalsIgnoreCase("stop")){
scanner.close();
System.out.println("Good Bye!");
Thread.sleep(2000);
System.exit(0);
}
}
}
}
}
Проблема решилась добавление строки -Dfile.encoding=cp866 в параметры запуска консоли.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Хочу проверить правильность заполнения из проперти и вывожу в логНо там абракадабра непонятная
Имеется структура типа Map<String, List<MyClass>>Как с помощью Stream API преобразовать ее к типу Map<String, List<MyClass
Есть postgres DB, пользователь вводит почту и пароль, по этим данным нужно вывести ему из другой таблицы его счетаКак в запросе в Java закинуть эту...
При загрузке изображения категории товаров происходит изменение цвета фотоОт черного к коричневому