Объединить строку перед последним вхождением любого символа - PullRequest
4 голосов
/ 09 ноября 2011

Я хочу объединить строку перед последним вхождением любого символа.

Я хочу сделать что-то вроде этого:

addToString(lastIndexOf(separator), string);

где "ddToString" это функция, которая добавит "строку" перед "lastIndexOf (разделитель)"

Есть идеи?

Один из способов, о котором я думалделает string = string + separator.Но я не могу понять, как перегрузить функцию конкатенации для конкатенации после определенного индекса.

Ответы [ 4 ]

3 голосов
/ 10 ноября 2011

Вы должны посмотреть в API Java на http://download.oracle.com/javase/7/docs/api/ и использовать метод подстроки String Classes (int beginIndex) после того, как найдете индекс указанного вами символа, так что

public String addToString(String source, char separator, String toBeInserted) {
        int index = source.lastIndexOf(separator); 
        if(index >= 0&& index<source.length())
    return source.substring(0, index) + toBeInserted + source.substring(index);
        else{throw indexOutOfBoundsException;}
}
2 голосов
/ 09 ноября 2011

Попробуйте это:

static String addToString(String source, int where, String toInsert) {
    return source.substring(0, where) + toInsert + source.substring(where);
}

Возможно, вы захотите добавить проверку некоторых параметров (например, если символ не найден).

1 голос
/ 09 ноября 2011

Простой способ:

String addToString(String str, int pos, String ins) {
    return str.substring(0, pos) + ins + str.substring(pos);
}
1 голос
/ 09 ноября 2011

Вам нужно использовать StringBuffer и метод append(String). Java внутренне преобразует + между String с во временную StringBuffer, вызывает append(String), затем вызывает toString() и позволяет ГХ освободить выделенную память.

...