import javax.microedition.midlet.*;
public class Midlet extends MIDlet {
public void startApp() {
/* Для большей наглядности проверим функцию вот таким вот бредом
* /path/to/file_WIDTHxHEIGHT.fakeextension.ext
* getWidthFromPath(".splash_240x320.rar"); // WTF ?!!!11
*/
}
/*
* sample_file_128x128.ext
* noextension_128x64
* .hiddenfile_240x320
* /path/to/.hidden/file
*/
void getWidthFromPath(String target) {
int w, h = 0;
// lastIndexOf, так как в названии могут встречаться 'x', '.' и '_'
int idx1 = target.lastIndexOf('_');
int tdx2 = target.indexOf('.');
int idx2 = target.lastIndexOf('.');
// Сначала отделим название до последнего '_'
String temp1 = target.substring(0, idx1).trim();
// получим "x_stalker_x-zero11"
// Теперь получим всё то, что за подчёркиванием
// а также откинем расширение (или всё, что после точки)
int len1 = temp1.length(); // Длина названия
// len1+1 так, как считаем '_'
String temp2 = "";
if (idx2 == 0 || tdx2 == 0 || (temp1.indexOf('.') != 0)) {
temp2 = target.substring(len1+1, target.length()).trim();
} else if (idx2 == tdx2) { // в строке была одна точка
temp2 = target.substring(len1+1, idx2).trim();
} else if (idx2 != tdx2) { // в строке несколько точек
if (temp1.indexOf('.') != 0) { // точка в названии? "/etc/.user/*.jpeg"
temp2 = target.substring(len1+1, idx2).trim();
} else { // какая-то хуита в расширении "*.rar.jpeg"
temp2 = target.substring(len1+1, tdx2).trim();
}
// Если и то и другое, у части с размерами остаётся одно расширение
int tmp_idx = temp2.indexOf('.');
if (tmp_idx != 0) { // если есть, то убираем
temp2 = temp2.substring(0, tmp_idx).trim();
}
}
// Получим "13x36"
// Осталось получить всё что до и после 'x'
int len2 = temp2.length(); // длина части имени с размерами
int idx3 = temp2.indexOf('x');
String temp3 = temp2.substring(0, idx3).trim(); // 13
String temp4 = temp2.substring(idx3+1, len2).trim(); //36
w = Integer.parseInt(temp3);
h = Integer.parseInt(temp4);
System.out.println("w = " + w);
System.out.println("h = " + h);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
notifyDestroyed();
}
}