Ответ 1
Строки в java неизменяемы. Это означает, что вам нужно создать новую строку или перезаписать старую строку для достижения желаемого эффекта:
id = id.replace(".xml", "");
Я пытаюсь удалить часть .xml
имени файла с помощью следующего кода:
String id = fileR.getName();
id.replace(".xml", "");
idList.add(id);
Проблема заключается в том, что он не удаляет его, и я не знаю, почему он не удалит целевой текст.
EDIT: На самом деле я понимаю, что функция replace не найдет .xml
, поэтому, я думаю, вопрос в том, как мне избавиться от этих последних 4 символов?
Вот строка, которая передается в:
0b14d501a594442a01c6859541bcb3e8164d183d32937b851835442f69d5c94e.xml
Спасибо,
Строки в java неизменяемы. Это означает, что вам нужно создать новую строку или перезаписать старую строку для достижения желаемого эффекта:
id = id.replace(".xml", "");
Не можете ли вы использовать
id = id.substring(0, id.length()-4);
И что сказал Эрик, конечно.
Строки неизменяемы, поэтому, когда вы ими манипулируете, вам нужно назначить результат строке:
String id = fileR.getName();
id = id.replace(".xml", ""); // this is the key line
idList.add(id);
String
являются неизменяемыми. Поэтому String.replace()
не изменяет id
, он возвращает новый String
с соответствующим значением. Поэтому вы хотите использовать id = id.replace(".xml", "");
.
String id = id.substring(0,id.length()-4)
Это безопасно удалит только если токен находится в конце строки.
StringUtils.removeEnd(string, ".xml");
Функции StringUtils null-, empty- и match- безопасны