Удалить символы из строки в Java - PullRequest
24 голосов
/ 17 апреля 2011

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

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

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

РЕДАКТИРОВАТЬ : На самом деле я понимаю, что функция замены не найдет .xml, поэтому я думаю, вопрос в том, как мне избавиться от этих последних 4 символов ?

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

0b14d501a594442a01c6859541bcb3e8164d183d32937b851835442f69d5c94e.xml

Спасибо,

Ответы [ 6 ]

42 голосов
/ 17 апреля 2011

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

id = id.replace(".xml", "");
10 голосов
/ 17 апреля 2011

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

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

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

3 голосов
/ 17 апреля 2011

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

String id = fileR.getName();
id = id.replace(".xml", ""); // this is the key line
idList.add(id);
2 голосов
/ 17 апреля 2011

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

1 голос
/ 17 апреля 2011
String id = id.substring(0,id.length()-4)
0 голосов
/ 19 июля 2019

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

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

Apache StringUtils функции нулевые, пустые и не безопасны для совпадения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...