Подтвердить что ты не робот

Удаление символов из строки в Java

Я пытаюсь удалить часть .xml имени файла с помощью следующего кода:

String id = fileR.getName();
              id.replace(".xml", "");
              idList.add(id);

Проблема заключается в том, что он не удаляет его, и я не знаю, почему он не удалит целевой текст.

EDIT: На самом деле я понимаю, что функция replace не найдет .xml, поэтому, я думаю, вопрос в том, как мне избавиться от этих последних 4 символов?

Вот строка, которая передается в:

0b14d501a594442a01c6859541bcb3e8164d183d32937b851835442f69d5c94e.xml

Спасибо,

4b9b3361

Ответ 1

Строки в java неизменяемы. Это означает, что вам нужно создать новую строку или перезаписать старую строку для достижения желаемого эффекта:

id = id.replace(".xml", "");

Ответ 2

Не можете ли вы использовать

id = id.substring(0, id.length()-4);

И что сказал Эрик, конечно.

Ответ 3

Строки неизменяемы, поэтому, когда вы ими манипулируете, вам нужно назначить результат строке:

String id = fileR.getName();
id = id.replace(".xml", ""); // this is the key line
idList.add(id);

Ответ 4

String являются неизменяемыми. Поэтому String.replace() не изменяет id, он возвращает новый String с соответствующим значением. Поэтому вы хотите использовать id = id.replace(".xml", "");.

Ответ 5

String id = id.substring(0,id.length()-4)

Ответ 6

Это безопасно удалит только если токен находится в конце строки.

StringUtils.removeEnd(string, ".xml");

Функции StringUtils null-, empty- и match- безопасны