У вас вопрос довольно простой: как убрать предпоследний .Это довольно просто, но вы должны сделать это в два этапа ... Вот оно:
/**
* Returns the penultimate of a string.
*/
public static String getPenultimate( String str, char separator ){
int pos1 = str.lastIndexOf(separator);
if( pos1 > 0 ){
String substr = str.substring(0, pos1 );
int pos2 = substr.lastIndexOf(separator);
if( pos2 > 0 ){
return substr.substring(0, pos2) + str.substring(pos1);
}
return str.substring(pos1+1);
}
return null;
}
public static void main( String[] args){
System.out.println( getPenultimate( "name.ext.v2.out.end", '.' ) );
System.out.println( getPenultimate( "out.end", '.' ) );
System.out.println( getPenultimate( "end", '.' ) );
}
main () дает следующие результаты:
name.ext.v2.end
end
null
ноль возвращается, если данных недостаточно. Разделитель - это точка для передачи в качестве параметра (метод является общим).