Как я могу удалить конкретную запятую в конце

У меня есть вывод, как

1054273,
1148244,
1174481,
1175759,
1180656,
1181151,

Мне нужно убрать запятую в конце.

Я попробовал код:

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

Но вывод показывает, что все запятые были удалены.

Может ли кто-нибудь помочь мне решить эту проблему??

Спасибо, СК


person Sudeep Krishna    schedule 28.02.2018    source источник
comment
Возможный дубликат Java - обрезать начальные или конечные символы из строки?   -  person Century    schedule 28.02.2018
comment
вы можете использовать разделение с (,) и создать свой вывод, как вы хотите   -  person Azzabi Haythem    schedule 28.02.2018


Ответы (4)


String text = "1054273, 1148244, 1174481, 1175759, 1180656, 1181151,".trim();

if(text.endsWith(","))
   text = text.substring(0, text.lastIndexOf(","))

Исходный text обрезан, чтобы гарантировать, что у вас нет конечного пробела. Предполагая, что у вас есть строка допустимой длины.

person ernest_k    schedule 28.02.2018
comment
Что делать, если запятой в конце нет, ваш метод удалит другую запятую, которая не должна быть удалена - person Century; 28.02.2018
comment
@Century Вопрос не в этом. Есть много других причин проверить, заканчивается ли строка, на которой выполняется этот код, запятой. Так что это должно быть нормально, чтобы предположить, что. - person ernest_k; 28.02.2018
comment
в вопросе предлагается удалить завершающую запятую, но не говорится, что она обязательно должна быть (приведенный пример является просто примером), поэтому вы не можете сделать это предположение. - person Century; 28.02.2018
comment
@Century не знаю, убедил ли ты меня, но по крайней мере убедил. Добавлен if. - person ernest_k; 28.02.2018

Если вы хотите удалить персонажа, зачем вы replacing его?

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

str = str.substring(0, str.length() - 1);
person aPugLife    schedule 28.02.2018

вы можете использовать такую ​​подстроку

  String str = "1054273, 1148244, 1174481, 1175759, 1180656, 1181151,";
            String output = str.substring(0, str.length()-1);
            System.out.println(output);

вывод:

1054273, 1148244, 1174481, 1175759, 1180656, 1181151

или если вы хотите создать собственный вывод, вам лучше использовать split и создать массив строк следующим образом:

String[] outputArrays = str.split(",");
        Arrays.asList(outputArrays).stream().forEach(System.out::println);

вывод (и вы можете его изменить):

 1054273
 1148244
 1174481
 1175759
 1180656
 1181151 
person Azzabi Haythem    schedule 28.02.2018

В вашем случае вы можете просто удалить последний символ.

С подстрокой:

str = str.substring(0, str.length() - 1);

С регулярным выражением:

str = str.replaceAll(".$", "");
person veben    schedule 28.02.2018