Исключение работает не верно [дубликат]

139
23 апреля 2019, 22:20

На данный вопрос уже ответили:

  • Как сравнивать строки в Java? 2 ответа

Код выкидывает исключение, но по идее не должен. Исключение написано мной. Проверка на формат файла. Если нетекстовый формат, то должно выбрасываться исключение. А там стоит верный формат, но исключение выбрасывается. Помогите разобраться.

try {
    String name = "C:\\Users\\Neizvestnost\\Desktop\\Test.txt";
    IncorrectFormat i = new IncorrectFormat();
    name = name.substring( name.lastIndexOf(".")+1);
    if(name !="txt") throw new IncorrectFormat();
    ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("C:\\Users\\Neizvestnost\\Desktop\\Test.txt"));
} catch (IncorrectFormat e ) {
    System.out.println("некоректный форма");
} catch (FileNotFoundException e) {
    System.out.println("Нету такого");
}
Answer 1

Используйте вместо name новую переменную, так как в Java строки остаются неизменными. Так же для сравнения строк используется метод equals(), так как строки объекты, используя = вы сравниваете ссылки на объекты.

Что написано у вас:

name = name.substring( name.lastIndexOf(".")+1);
if(name !="txt") throw new IncorrectFormat();

Измените на это.

String name2 = name.substring( name.lastIndexOf(".")+1);
if(!name2.equals("txt")) throw new IncorrectFormat();
READ ALSO
Изменение заставочной картинки на телефоне Android

Изменение заставочной картинки на телефоне Android

Возможно ли изменить заставочный экран на телефоне Android программно(на изображение, например)? Если да, то как, используя Java

114
Java посимвольный вывод, запись в файл

Java посимвольный вывод, запись в файл

Как после ввода слова, вывести в консоль все буквы а не только первую? С применением forEach не получиться решить второй вопрос по моему̶К̶а̶к̶...

159
Точность распознавания лиц с помощью Javacv

Точность распознавания лиц с помощью Javacv

Я новичок в javacvПробую создать систему распознавания лиц и столкнулся с проблемой низкой точности распознавания

123