Если вы хотите удалить только расширение
url = 'abcdc.com'
print('.'.join(url.split('.')[:-1]))
, оно работает с любым расширением, с потенциальными другими точками, существующими в имени файла. Он просто разбивает строку на список по точкам и соединяет ее без последнего элемента.
Вероятно, не самый быстрый, но для меня он более читабельен, чем другие методы.
Дубликат https://stackoverflow.com/a/51334221/1139196 . Я немного изменил код, чтобы соответствовать вашему вопросу.
import java.util.Arrays;
import java.util.List;
public class LongestCommonSubstring {
public static char[] lcs(List l1, List l2) {
int[][] d = new int[l1.size() + 1][l2.size() + 1];
for (int i1 = 1; i1 <= l1.size(); i1++) {
for (int i2 = 1; i2 <= l2.size(); i2++) {
if (l1.get(i1 - 1).equals(l2.get(i2 - 1))) {
d[i1][i2] = d[i1 - 1][i2 - 1] + 1;
} else {
d[i1][i2] = Math.max(d[i1 - 1][i2], d[i1][i2 - 1]);
}
}
}
int i1 = l1.size(), i2 = l2.size();
char[] result = new char[d[i1][i2]];
while (i1 > 0 && i2 > 0) {
if (l1.get(i1 - 1).equals(l2.get(i2 - 1))) {
result[d[i1][i2] - 1] = ((String) l1.get(i1 - 1)).charAt(0);
i1 -= 1;
i2 -= 1;
} else if (d[i1][i2] == d[i1 - 1][i2]) {
i1 -= 1;
} else {
i2 -= 1;
}
}
return result;
}
public static void main(String[] args) {
List l1 = Arrays.asList("elete".split(""));
List l2 = Arrays.asList("leet".split(""));
System.out.println(new String(lcs(l1, l2)));
}
}