在最后一次出现任何字符之前连接一个字符串

时间:2011-11-09 19:46:53

标签: java string-concatenation

我想在最后一次出现任何字符之前连接一个字符串。

我想做这样的事情:

addToString(lastIndexOf(separator), string);

其中“ddToString”是一个在“lastIndexOf(分隔符)”之前添加“string”的函数

有什么想法吗?

我想到的一种方法是制作string = string + separator。 但是,我无法弄清楚如何在特定索引之后重写concatenate函数以进行连接。

4 个答案:

答案 0 :(得分:3)

你应该在http://download.oracle.com/javase/7/docs/api/查看Java的api并在找到指定字符的索引后使用String Classes substring(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;}
}

答案 1 :(得分:2)

试试这个:

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

您可能想要添加一些参数检查(例如,如果找不到字符)。

答案 2 :(得分:1)

您需要使用StringBuffer和方法append(String)。 Java内部将+之间的String转换为临时StringBuffer,调用append(String),然后调用toString()并让GC释放已分配的内存。

答案 3 :(得分:1)

简单的方法是:

String addToString(String str, int pos, String ins) {
    return str.substring(0, pos) + ins + str.substring(pos);
}