Замена последнего символа в строке с Java

У меня есть строка:

String fieldName = "A=2,B=3 and C=3,";

Теперь я хочу заменить последний , с пробелом.

Я использовал:

if (fieldName.endsWith(",")) {
    fieldName.replace(",", " ");
    fieldName = fieldName.replace((char) (fieldName.length() - 1), 'r');
}

System.out.println("fieldName = " + fieldName);

Но все же я получаю ту же старую строку. Как я могу получить этот вывод вместо этого?

fieldName = A=2,B=3 and C=3

Ответ 1

Вы можете просто использовать substring:

if(fieldName.endsWith(","))
{
  fieldName = fieldName.substring(0,fieldName.length() - 1);
}

Обязательно переназначьте свое поле после выполнения substring как Строки неизменяемы в java

Ответ 2

Для получения необходимого результата вы можете сделать следующее:

fieldName = fieldName.trim();
fieldName = fieldName.substring(0,fieldName.length() - 1);

Ответ 3

fieldName = fieldName.substring(0, string.length()-1) + " ";

Ответ 4

Во-первых, строки являются неизменяемыми в Java, вы должны назначить результат замены переменной.

fieldName = fieldName.replace("watever","");

Вы также можете использовать регулярное выражение в качестве опции, используя String#replaceAll(regex, str);

fieldName = fieldName.replaceAll(",$","");

Ответ 5

Попробуйте следующее:

s = s.replaceAll("[,]$", "");

Ответ 6

Я хочу заменить last ',' пробелом

if (fieldName.endsWith(",")) {
    fieldName = fieldName.substring(0, fieldName.length() - 1) + " ";
}

Если вы хотите удалить конечную запятую, просто избавьтесь от + " ".

Ответ 7

Метод замены StringBuilder может использоваться для замены последнего символа.

StringBuilder.replace(startPosition, endPosition, newString)

StringBuilder builder = new StringBuilder(fieldName);
builder.replace(builder.length()-1, builder.length(), "");
builder.toString();

Ответ 8

вы можете использовать регулярные выражения для идентификации последней запятой (,) и заменить ее на "" следующим образом:

if(fieldName.endsWith(","))
{                           
fieldName = fieldName.replace(/,([^,]*)$/," ");
}

Ответ 9

Уже @Abubakkar Rangara ответил на простой способ справиться с вашей проблемой

Альтернатива:

String[] result = null;
if(fieldName.endsWith(",")) {                           
String[] result = fieldName.split(",");
    for(int i = 1; i < result.length - 1; i++) {
        result[0] = result[0].concat(result[i]);
    }
}

Ответ 10

Вы можете просто использовать:

if(fieldName.endsWith(","))
{
   StringUtils.chop(fieldName);
}

из общего достояния

Ответ 11

    if (fieldName.endsWith(",")) {
        fieldName = fieldName.substring(0, fieldName.length()-1) + " ";
    }

Ответ 12

Измените код как fieldName = fieldName.replace( ",", "");