Какой самый краткий способ в Java получить "Alpha" из "AlphaSuffix"? - PullRequest
2 голосов
/ 24 августа 2011

Если у меня есть строка, например, одна из следующих:

AlphaSuffix
BravoSuffix
CharlieSuffix
DeltaSuffix

Какой самый краткий синтаксис Java для преобразования AlphaSuffix в Alpha в BravoSuffix в Bravo?

Ответы [ 3 ]

4 голосов
/ 24 августа 2011

Используйте простое регулярное выражение для удаления суффикса:

String myString = "AlphaSuffix";
String newString = myString.replaceFirst("Suffix$", "");
4 голосов
/ 24 августа 2011

Отрубите.

String given = "AlphaSuffix"
String result = given.substring(0, given.length()-"Suffix".length());

Чтобы сделать его еще более лаконичным, создайте служебный метод.

public static String chop(String value, String suffix){
    if(value.endsWith(suffix)){
        return value.substring(0, value.length() - suffix.length());
    }
    return value;
}

В служебном методе я добавил проверку, чтобы увидеть, действительно ли суффикс находится в конце value.


Тест:

String[] sufs = new String[] {
    "AlphaSuffix",
    "BravoSuffix",
    "CharlieSuffix",
    "DeltaSuffix"
};
for (int i = 0; i < sufs.length; i++) {
    String s = chop(sufs[i], "Suffix");
    System.out.println(s);
}

Дает:

Alpha
Bravo
Charlie
Delta
0 голосов
/ 24 августа 2011

если суффиксы все разные / неизвестны, вы можете использовать

myString.replaceFirst("^(Alpha|Bravo|Charlie|Delta|...).*", "$1");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...