Удалить последний символ строки, если это "," - PullRequest
0 голосов
/ 06 февраля 2020

Итак, у меня есть строка, и после выполнения некоторых операций с ней, в конце получается слишком много ",". Теперь, как я могу удалить этот последний "," только если это действительно ","?

Моя строка ввода:

String input =",w84,w41,w56,w170,w56,w41,w84,/,,w24,w40,w17,w40,w48,,/,,,w16,w16,w16,,,/,,,,,,,,/,,,,,,,,/,,,,,,,,/,,,b1,b1,b1,,,/,,b3,b130,b17,b130,b129,,/,b69,b146,b131,b170,b131,b146,b69,";

, а вывод:

,w84,w41,w56,w170,w56,w41,,w84/,,w24,w40,w17,w40,w48,,/,,,w16,,w16,,,/,,,,w32,,,,/,,,,,,,,/,,,,,,,,/,,,b1,b1,b1,,,/,,b3,b130,b17,b130,b129,,/,b69,b146,b131,b170,b131,b146,b69,, 

Теперь, как мне избавиться от этого последнего ","?

Ответы [ 4 ]

1 голос
/ 06 февраля 2020

Если вы хотите избежать regexpr ...

if (str != null && str.endsWith(',')) {
    return str.substring(0, str.length() -1);
}
return str;

или вы можете использовать библиотеку apache commins и избежать проверки нуля

if (StringUtils.endsWith(str, ',') {
    return str.substring(0, str.length() -1);
}
return str;
1 голос
/ 06 февраля 2020

Вы можете использовать replaceAll с регулярным выражением:

 input = input.replaceAll(",+$", "");

Выход

...131,b146,b69

Если вы хотите сохранить только один , в конец, если есть несколько, вместо этого вместо * нужно пусто: ,

input = input.replaceAll(",+$", ",");

Выход

...131,b146,b69,
0 голосов
/ 06 февраля 2020

Вы можете попробовать приведенный ниже код, чтобы удалить последний символ из строки, если это ,

public class Test {
    public static void main(String args[]) {
        String string = args[0];
        /* Please handle cases where string is empty or not defined */
        if(string.charAt(string.length() - 1) == ','){
            string = string.substring(0, string.length() - 1);
        }
      System.out.println(string);
    }
0 голосов
/ 06 февраля 2020
public String method(String str) {
if (str != null && str.length() > 0 && str.charAt(str.length() - 1) == ',') {
    str = str.substring(0, str.length() - 1);
}
return str;
}

Этот метод удаляет последний символ, если это запятая. Если вы хотите удалить ВСЕ запятые в конце, вы можете изменить этот метод:

public String method(String str) {
while (str != null && str.length() > 0 && str.charAt(str.length() - 1) == ',') {
    str = str.substring(0, str.length() - 1);
}
return str;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...